JSON_OBJECT

La fonction JSON_OBJECT génère un objet JSON à l'aide des paires key: value spécifiées. Si aucune paire key: value n'est fournie, un objet vide est renvoyé.

Lire le diagramme de syntaxeIgnorer le diagramme de syntaxe graphiqueJSON_OBJECT(,KEYexpression-nom-cléVALUEExpression JSONexpression-nom-clé : Expression JSONFORMAT JSONFORMAT BSONNULL ON NULLABSENT ON NULLWITHOUT UNIQUE KEYSWITH UNIQUE KEYS RETURNINGCLOB (2G) CCSID 1208FORMAT JSONRETURNINGtype de donnéesFORMAT JSONENCODING UTF8ENCODING UTF16 FORMAT BSON )
type de données
Lire le diagramme de syntaxeIgnorer le diagramme de syntaxe graphiqueCHARACTERCHAR(1)(Entier)CHARACTERCHARVARYINGVARCHAR(Entier)FOR SBCS DATAFOR MIXED DATAclause-ccsidCHARACTERCHARLARGE OBJECTCLOB(1M)(EntierKMG)FOR SBCS DATAFOR MIXED DATAclause-ccsidGRAPHIC(1)(Entier)GRAPHIC VARYINGVARGRAPHIC(Entier)DBCLOB(1M)(EntierKMG)clause-ccsidNATIONAL CHARACTERNATIONAL CHARNCHAR(1)(Entier)NATIONAL CHARACTERNATIONAL CHARNCHARVARYINGNVARCHAR(Entier)NATIONAL CHARACTERNCHARLARGE OBJECTNCLOB(1M)(EntierKMG)clause-normalisationBINARY(1)(Entier)BINARY VARYINGVARBINARY(Entier)BINARY LARGE OBJECTBLOB(1M)(EntierKMG)
clause-ccsid
Lire le diagramme de syntaxeIgnorer le diagramme de syntaxe graphiqueCCSIDEntierclause-normalisation
clause-normalisation
Lire le diagramme de syntaxeIgnorer le diagramme de syntaxe graphiqueNOT NORMALIZEDNORMALIZED
expression-nom-clé
Nom de la clé JSON. Le nom ne doit pas être null. Lorsque vous utilisez le signe deux-points pour définir une paire key: value , key-name-expression doit être un littéral chaîne de caractères. Sinon, le résultat de key-name-expression doit être un type de données de chaîne graphique ou de caractère intégré. Il ne peut pas s'agir de données binaires CHAR ou VARCHAR.
expression-JSON
Expression à utiliser pour générer la valeur JSON associée à key-name-expression. Le type de résultat de cette expression peut être tout type de données intégré à l'exception de XML, ROWID ou DATALINK. Il ne peut pas s'agir de données binaires CHAR ou VARCHAR. Il ne peut pas s'agir d'un type défini par l'utilisateur qui est sourcé sur l'un de ces types de données.
FORMAT JSON ou FORMAT BSON
Indique si JSON-expression est déjà des données formatées.
FORMAT JSON
JSON-expression est formaté en tant que données JSON. Si JSON-expression est un type de données de type chaîne de caractères ou graphique, il est traité comme des données JSON. Si JSON-expression est un type de données de chaîne binaire, il est interprété comme des données UTF-8 ou UTF-16 .
FORMAT BSON
JSON-expression est formatée en tant que représentation BSON des données JSON et doit être un type de données de chaîne binaire.
Si ni FORMAT JSON ni FORMAT BSON n'est spécifié:
  • Si JSON-expression est l'une des fonctions intégrées JSON_ARRAY, JSON_OBJECT, JSON_QUERY, JSON_ARRAYAGG ou JSON_OBJECTAGG, la valeur FORMAT explicite ou implicite de la clause RETURNING de la fonction détermine le format de JSON-expression.
  • Si JSON-expression est un type de chaîne binaire, il est interprété comme FORMAT BSON.
  • Sinon, JSON-expression est considérée comme des données non formatées. Si la valeur générée n'est pas numérique, la chaîne de résultat sera construite avec des chaînes entre guillemets et tous les caractères spéciaux seront mis en échappement. Une valeur numérique qui n'est pas un nombre JSON valide, tel que INFINITY ou NAN, génère une erreur.
NULL ON NULL ou ABSENT SUR NULL
Indique ce qu'il faut renvoyer lorsque JSON-expression est la valeur null.
NULL ON NULL
La valeur zéro est renvoyée. Il s'agit de la valeur par défaut.
ABSENT SUR NULL
La paire key: value est omise de l'objet JSON.
SANS CLÉS UNIQUES ou AVEC CLÉS UNIQUES
Indique si les valeurs de clé de l'objet JSON résultant doivent être uniques.
SANS CLÉS UNIQUES
L'objet JSON résultant ne sera pas vérifié pour les clés en double. Il s'agit de la valeur par défaut.
AVEC DES CLÉS UNIQUES
L'objet JSON résultant doit avoir des valeurs de clé uniques. Une erreur est générée si des clés en double sont générées.
La génération d'un objet JSON avec des clés uniques est considérée comme la meilleure pratique. Si key-name-expression génère des noms de clé uniques, omettez WITH UNIQUE KEYS pour améliorer les performances.
RETOUR type-données
Indique le format du résultat.
type de données
Type de données du résultat. Pour les résultats CHAR et VARCHAR, le CCSID ne peut pas être 65535. La valeur par défaut est CLOB (2G) CCSID 1208.

Si un CCSID est spécifié et que le type de données est GRAPHIC, VARGRAPHIC ou DBCLOB, le CCSID doit être un CCSID Unicode.

Si l'attribut CCSID n'est pas spécifié, le CCSID est déterminé comme décrit dans la spécification CAST.

FORMAT JSON
Les données JSON sont renvoyées sous forme de chaîne JSON.
ENCODING UTF8 ou ENCODING UTF16
Codage à utiliser lorsque le type de données est un type de chaîne binaire. Cette clause est autorisée uniquement pour les types de chaîne binaire. La valeur par défaut pour les chaînes binaires est UTF8.
FORMAT BSON
Les données JSON sont renvoyées au format BSON. Lorsque FORMAT BSON est spécifié, data-type doit être un type de chaîne VARBINARY ou BLOB.

Exemples

  • Générez un objet JSON pour un nom.
    VALUES (JSON_OBJECT(KEY 'first' VALUE 'John', KEY 'last' VALUE 'Doe'));
    
    VALUES (JSON_OBJECT('first' : 'John', 'last' : 'Doe'));
    Le résultat de l'une de ces instructions est la chaîne JSON suivante:
    {"first":"John","last":"Doe"}
  • Générez un objet JSON contenant le nom, la date d'embauche et le salaire de l'employé avec le numéro d'employé'000020'.
    SELECT JSON_OBJECT(
                   'Last name' : LASTNAME,
                   'Hire date' : HIREDATE,
                   'Salary'    : SALARY) 
    FROM EMPLOYEE
    WHERE EMPNO  = '000020';
    Le résultat de cette instruction est la chaîne JSON suivante:
    {"Last name":"THOMPSON","Hire date":"1973-10-10","Salary":41250.00}