In der Oracle-Datenbank das JSON_OBJECT() Funktion erstellt ein JSON-Objekt aus einer Folge von Schlüssel-Wert-Paaren oder einer Objekttypinstanz.
Syntax
Die Syntax lautet wie folgt:
JSON_OBJECT
( [ [ KEY ] key_expr VALUE val_expr [ FORMAT JSON ]
,]...
[ JSON_on_null_clause ] [ JSON_returning_clause ]
[ STRICT ]
[ WITH UNIQUE KEYS ] ) Wo:
[ KEY ] key_expr VALUE val_exprgibt ein Eigenschafts-Schlüssel-Wert-Paar an.FORMAT JSONgibt an, dass die Eingabezeichenfolge JSON ist und daher in der Ausgabe nicht in Anführungszeichen gesetzt wird.JSON_on_null_clausegibt das zu verwendende Verhalten an, wennexprentspricht null (d. h. entweder Nullwerte in die Ausgabe aufnehmen oder nicht).JSON_returning_clausegibt den Typ des Rückgabewerts an.STRICTprüft, ob die Ausgabe der JSON-Generierungsfunktion korrektes JSON ist oder nicht. Schlägt die Prüfung fehl, wird ein Syntaxfehler ausgegeben.WITH UNIQUE KEYSgarantiert, dass generierte JSON-Objekte eindeutige Schlüssel haben.
Beispiel
Hier ist ein Beispiel, um zu demonstrieren, wie es funktioniert:
SELECT JSON_OBJECT(KEY 'score' VALUE 37) FROM DUAL; Ergebnis:
{"score":37}
Der KEY part ist optional, daher führt Folgendes zum gleichen Ergebnis:
SELECT JSON_OBJECT('score' VALUE 37) FROM DUAL; Ergebnis:
{"score":37} Mehrere Schlüssel/Wert-Paare
Hier ist ein Beispiel mit mehreren Schlüssel/Wert-Paaren:
SELECT JSON_OBJECT(
KEY 'fname' VALUE 'Homer',
KEY 'lname' VALUE 'Escobar',
KEY 'score' VALUE 237
)
FROM DUAL; Ergebnis:
{"fname":"Homer","lname":"Escobar","score":237} Verschachteltes JSON
Wenn einer der übergebenen Werte JSON enthält, können Sie FORMAT JSON verwenden -Argument, um anzugeben, dass es JSON enthält und in der Ausgabe nicht in Anführungszeichen gesetzt werden soll.
Beispiel:
SELECT JSON_OBJECT(
KEY 'details'
VALUE '{"name": "Peter", "score": 64}'
FORMAT JSON
)
FROM DUAL; Ergebnis:
{"details":{"name": "Peter", "score": 64}}
Folgendes passiert, wenn wir FORMAT JSON entfernen Teil:
SELECT JSON_OBJECT(
KEY 'details'
VALUE '{"name": "Peter", "score": 64}'
)
FROM DUAL; Ergebnis:
{"details":"{\"name\": \"Peter\", \"score\": 64}"} Datenbankbeispiel
Angenommen, wir führen die folgende Abfrage aus:
SELECT *
FROM regions; Ergebnis:
REGION_ID REGION_NAME
____________ _________________________
1 Europe
2 Americas
3 Asia
4 Middle East and Africa
Hier ist die gleiche Abfrage, aber mit den ausgewählten Spalten, die an JSON_OBJECT() übergeben werden Funktion:
SELECT JSON_OBJECT(*)
FROM regions; Ergebnis:
{"REGION_ID":1,"REGION_NAME":"Europe"}
{"REGION_ID":2,"REGION_NAME":"Americas"}
{"REGION_ID":3,"REGION_NAME":"Asia"}
{"REGION_ID":4,"REGION_NAME":"Middle East and Africa"} Und hier ist es mit nur einer Spalte, die an die Funktion übergeben wird:
SELECT JSON_OBJECT(region_name)
FROM regions; Ergebnis:
{"region_name":"Europe"}
{"region_name":"Americas"}
{"region_name":"Asia"}
{"region_name":"Middle East and Africa"} Eine ausführlichere Erklärung dieser Funktion finden Sie in der Dokumentation von Oracle.