Noch ein Problem mit Json
Hallo ich komme noch an einer Stelle nicht weiter mit dem Json. Wenn ich ein Produkt aktualisiere möchte ich src:Links in URL-Felder übernehmen, wenn ich mit dem Button betätige. Leider funktioniert es nur so das er das erste url übernimmt. Ich weiß nicht wie ich den Array unterbreche. Ich glaube ich muss entweder mit item arbeiten, aber wie geht es? kann mir einer Helfen.
Mein Code:
let me := this;
let response := do as server
http("GET", "https://www.sonneamwerk.de/wp-json/wc/v3/products/" + ID + "?" +
"&consumer_key=???&consumer_secret=???", {
'Content-Type': "application/json"
}, {
id: ID,
type: type,
sku: Artikelnummer,
name: Produktname,
regular_price: Preis,
status: status,
description: Beschreibung
})
end;
if response.error then
alert(text(response.error))
else
'Import Text' := formatJSON(response.result);
ID := response.result.id;
Artikelnummer := response.result.sku;
'Produkttyp im SHOP' := response.result.type;
'Produktstatus im SHOP' := response.result.status;
Preis := response.result.price;
Produktname := response.result.name;
Beschreibung := response.result.description;
URL := response.result.permalink;
Kategorie := response.result.text(categories)
end;
for i in response.result.images do
'URL 2' := first(i.src);
'URL 5' := last(i.src)
end
Json-resultat:
"images":
[
{"id":4345,
"date_created":"2021-11-28T09:59:33",
"date_created_gmt":"2021-11-28T09:59:33",
"date_modified":"2021-12-29T00:18:06",
"date_modified_gmt":"2021-12-29T00:18:06",
"src":"https://www.sonneamwerk.de/wp-content/uploads/2021/11/Kalender-Bild1-e1640737367639.png",
"name":"Wandkalender-Dein-Reich-komme",
"alt":"Wandkalender \"Dein Reich komme!\""},
{"id":3543,
"date_created":"2021-11-01T13:59:29",
"date_created_gmt":"2021-11-01T13:59:29",
"date_modified":"2021-11-01T13:59:29",
"date_modified_gmt":"2021-11-01T13:59:29",
"src":"https://www.sonneamwerk.de/wp-content/uploads/2021/11/Kalender-Bild2.jpg",
"name":"Mockups Design","alt":""},
{"id":3544,
"date_created":"2021-11-01T13:59:36",
"date_created_gmt":"2021-11-01T13:59:36",
"date_modified":"2021-11-01T13:59:36",
"date_modified_gmt":"2021-11-01T13:59:36",
"src":"https://www.sonneamwerk.de/wp-content/uploads/2021/11/Kalender-Bild3.jpg",
"name":"Mockups Design","alt":""},
{"id":3545,
"date_created":"2021-11-01T13:59:43",
"date_created_gmt":"2021-11-01T13:59:43",
"date_modified":"2021-11-01T13:59:43",
"date_modified_gmt":"2021-11-01T13:59:43",
"src":"https://www.sonneamwerk.de/wp-content/uploads/2021/11/Kalender-Bild4.jpg",
"name":"Mockups Design","alt":""},
],
2 Antworten
-
Der Ansatz ist ja schon richtig.... nur, was du in deinem Script machst ist falsch. Für jedes Objekt "i" in "images" - also jeden einzelnen Block in geschweiften Klammern { } lässt Du 'URL 2' den 1. src sein, und 'URL 5' den letzten "src" ... es gibt aber für jedes "i" nur EINEN src...
Dazu wirst du mit festen URL Feldern so nicht weiterkommen, weil Du ja in einer Schleife das URL-Feld dynamisch ansprechen müsstest ... also im ersten i -> URL1, im zweiten i -> URL 2 ... usw.
Wenn Du aber weißt, Du hast zB immer maximal 5 Bilder pro Artikel, dann könntest Du statt mit einer for-Schleife einfach 5x via item() durch das Array gehen und jedes item einem festen URL Feld zuweisen...
'URL 1' := item(response.result.images, 0).src;
'URL 2' := item(response.result.images, 1).src
usw.... das könnte man noch mit einer if-Abfrage verfeinern...
Oder du iterierst durch die Bilder und legst Dir in einer Untertabelle für jedes "i" einen Datensatz an mit der URL
for i in response.result.images do
i.(
let me :=this;
let newEntry := (create UNTERTABELLE);
newEntry.(URL := src);
newEntry.(DEINEOBERTABELLE := me)
)
end
Content aside
- Status Answered
- vor 1 JahrZuletzt aktiv
- 2Antworten
- 83Ansichten
-
2
Folge bereits