Finde den Fehler in JSON für Service
Eingetragen von ka3ax (9)
am 16.11.2015 - 15:00 Uhr in
am 16.11.2015 - 15:00 Uhr in
Hallo,
ich versuche Nodes in Drupal über die Service-Schnittstelle anzulegen.
Eins von den Felder ist ein "Text area (multiple rows)". Wenn ich das über Drupal selbst erstelle und diesen Node dann auslesen, bekomme ich die Struktur wie das aufgebaut sein soll. In meinem Fall für das Feld sieht es so aus
{
"vid": "17810",
"uid": "1",
"title": "Der Titel",
...
"multiples_feld": {
"und": [
{
"value": "a",
"format": null,
"safe_value": "a"
},
{
"value": "b",
"format": null,
"safe_value": "b"
},
{
"value": "c",
"format": null,
"safe_value": "c"
}
]
}
...
}
Wenn ich jetzt die gleiche Struktur verwende um die selben Daten anzulegen
{
"title":"Der Titel",
"type":"node_type",
"multiples_feld": {
"und": [
{
"value": "a"
},
{
"value": "b"
},
{
"value": "c"
}
]
}
}
Wird der Node zwar angelegt aber nur mit dem ersten Wert, also in dem Fall nur mit "a".
Sieht jemand den Fehler in der JSON-Strucktur den ich mache?
- Anmelden oder Registrieren um Kommentare zu schreiben
das ist doch ein Textfeld [multirow]. oder?
am 16.11.2015 - 15:13 Uhr
dann muss die Zuweisung doch eher heißen:
"value": "a<br>b<br>c"
Grüße
Ronald
Ne, nicht ganz: es sind
am 16.11.2015 - 15:43 Uhr
Ne, nicht ganz: es sind mehrere Text-Areas. In jedem Text-Area soll der einzelne Buchstabe drin stehen.
Also nicht die Buchstaben untereinander in einem Text-Feld, sondern für jeder Buchstabe hat ein eigenes Text-Feld
Sorry, ist etwas missverständlicher beispiel mit den einzelnen Buchstaben. Hier macht es kein Sinn ein Text-Area zu benutzen anstelle von einem einfach Input-Feld. Hab versucht den Beispiel so einfach wie möglich zu halten.
dann hast du aber eine Verschachtelungstiefe mehr im Array
am 16.11.2015 - 15:55 Uhr
dafür musst du doch einen zusätzlichen Index im Feld haben.
Die beste Lösung:
erstelle die Struktur in Drupal, und schaue dir das Ergebnis mit DEVEL an.
Grüße
Ronald
wie meinen Sie es? Ein
am 16.11.2015 - 16:09 Uhr
wie meinen Sie es? Ein einfaches Beispiel wird mir helfen.
als Entwickler hast du sicher das DEVEL.Modul installiert
am 16.11.2015 - 16:11 Uhr
und aktiv.
Damit kann man sich die Datenstrukturen, wie sie auf der Seite vorliegen, ansehen.
Daraus wird dann auch klar, wie die Strukturen auszushen haben, wenn sie über einen Service kommen.
Wahrscheinlich gibt es ein Multiple_field[0], Multiple_field[1] etc.
Es wäre auch denkbar multiple_field[und].value[0], ... value[1] ...
Ich bin aber gerade nicht sicher, wie Drupal dies an dieser Stelle indiziert.
Deshalb - ein Blick über das DEVEL-Modul.
Grüße
Ronald
ein Blick auf devil
am 16.11.2015 - 16:18 Uhr
ein Blick auf devil
damit ist die Addressierung doch jetzt klar
am 16.11.2015 - 21:26 Uhr
"multiples_feld": {
"und": {
0:{ "value": "a"
},
{
1:{ "value": "b"
},
{
2:{ "value": "c"
}
}
Ich hoffe, ich habe jetzt die richtige Syntax ;-) - aber das bekommst du jetzt hin.
Grüße
Ronald
nee, wenn dann müsste so
am 17.11.2015 - 08:07 Uhr
nee... wenn, dann müsste so heißen (ohne die geschwefelte Klammer vor der 1 und der 2)
"multiples_feld":{
"und":{
0:{
"value":"a"
},
1:{
"value":"b"
},
2:{
"value":"c"
}
}
}
das ist aber eh beides nicht valide.
Ich gehe davon aus, das wenn man auch die 0-3 weg lässt es auch automatisch vom JSON-Parser mit fortlaufenden Key nummeriert wird.