it-swarm.com.de

JSON-Array-Format in MySQL funktioniert nicht?

Was ist der richtige Weg, um ein JSON-Datenarray in MySQL zu erstellen?

Das Befolgen des JSON.org-Beispiels http://json.org/example.html funktioniert nicht:

 insert into zz_TEST_ObsJSON (jsonData) values ('{"Test1":{"Val1":"37", "Val2":"25"}},{"Test2":{"Val1":"25", "Val2":"27"}}');

FEHLER 3140 (22032): Ungültiger JSON-Text: "Dem Dokumentstamm dürfen keine anderen Werte folgen." an Position 36 im Wert für die Spalte 'zz_TEST_ObsJSON.jsonData'.

Zum Kichern habe ich versucht, alles in ein anderes zu stecken {}:

insert into zz_TEST_ObsJSON (jsonData) values ('{{"Test1":{"Val1":"37", "Val2":"25"}},{"Test2":{"Val1":"25", "Val2":"27"}}}');

FEHLER 3140 (22032): Ungültiger JSON-Text: "Fehlender Name für Objektmitglied." an Position 1 im Wert für die Spalte 'zz_TEST_ObsJSON.jsonData'.

Diese andere Methode, die wie geoJSON aussieht, funktioniert auch nicht:

insert into zz_TEST_ObsJSON (jsonData) values ('[["Test1":{"Val1":"37", "Val2":"25"}],["Test2":{"Val1":"25", "Val2":"27"}]]');

FEHLER 3140 (22032): Ungültiger JSON-Text: "Nach einem Array-Element fehlt ein Komma oder ']'." an Position 10 im Wert für die Spalte 'zz_TEST_ObsJSON.jsonData'.

insert into zz_TEST_ObsJSON (jsonData) values ('["Test1":{"Val1":"37", "Val2":"25"}],["Test2":{"Val1":"25", "Val2":"27"}]');

FEHLER 3140 (22032): Ungültiger JSON-Text: "Nach einem Array-Element fehlt ein Komma oder ']'." an Position 9 im Wert für die Spalte 'zz_TEST_ObsJSON.jsonData'.

3
Anthony S.

Versuchen Sie, ein JSON-Array mit zwei Objekten einzufügen: Test1 und Test2?

Wenn ja, müssen Sie die Daten als Array einfügen:

JSON-Array:

[{
  "Test1": {
    "Val1": "37",
    "Val2": "25"
  }
}, {
  "Test2": {
    "Val1": "25",
    "Val2": "27"
  }
}]

Ihre INSERT -Anweisung würde wie folgt aussehen (beachten Sie die umschließenden Klammern um die JSON-Objekte):

INSERT INTO zz_TEST_ObsJSON (jsonData) values ('[{"Test1":{"Val1":"37", "Val2":"25"}},{"Test2":{"Val1":"25", "Val2":"27"}}]');
2
Jerod Johnson

Ihr eigenes Problem hier ist, dass Sie JSON nicht verstehen. In der Datenbank kann JSON ein beliebiges JavaScript-Objekt speichern.

object
array
string
number
"true"
"false"
"null"
  • Im ersten Beispiel versuchen Sie, zwei Objekte zu speichern. Das kannst du nicht machen. Sie können nur ein Objekt speichern (das selbst Objekte als Schlüssel haben kann).
  • Im zweiten Beispiel versuchen Sie, ein Objekt mit einem Schlüssel zu speichern, der selbst ein Objekt ist. Das kannst du auch nicht.
  • Im dritten Beispiel versuchen Sie, ein Array mit Elementen von [k:v].
  • Im vierten Beispiel versuchen Sie, zwei Arrays zu speichern. Das kannst du nicht machen. Sie können nur ein Array speichern (das möglicherweise selbst Arrays als Elemente enthält).
0
Evan Carroll