0

Json Daten extrahieren

Hallo liebe Community,

ich habe folgendes Problem. 

Ich bekommen durch eine API anfrage an mein Woocommerce-Shop folgendes Resultat als JSON beim response.result.meta_data zurück.

{"id":27416,"key":"_yoast_wpseo_primary_product_cat","value":""}, {"id":27417,"key":"_yoast_wpseo_estimated-reading-time-minutes","value":"1"}, {"id":27418,"key":"_yoast_wpseo_wordproof_timestamp","value":""}, {"id":28896,"key":"_yoast_wpseo_focuskw","value":"Trina Solar TSM-420DE09R.05 Vertex S"}, {"id":28897,"key":"_yoast_wpseo_linkdex","value":"44"}, {"id":29152,"key":"_yoast_wpseo_metadesc","value":"▻ Trina Solar TSM 420DE09R.05 VERTEX S ☀️ Erweitere dein Balkonkraftwerk ☀️ SONNE AM WERK ☀️ Balkonkraftwerk für jedermann!"}, {"id":29675,"key":"_wc_gla_mc_status","value":"approved"}, {"id":29720,"key":"_wc_gla_synced_at","value":"1705911949"}, {"id":29721,"key":"_wc_gla_sync_status","value":"synced"}, {"id":29722,"key":"_wc_gla_visibility","value":"sync-and-show"}, {"id":29723,"key":"_wc_gla_google_ids","value":{"DE":"online:de:DE:gla_4973"}}, {"id":31811,"key":"_et_builder_dynamic_assets_loading_attr_threshold","value":"2"}, {"id":31815,"key":"_et_pb_use_builder","value":"on"}, {"id":31817,"key":"_et_pb_old_content","value":"<h3>TRINA SOLAR TSM-420DE09R.05 VERTEX S Black Frame</h3>\r\nDas <a href=\"https://beta.sonneamwerk.de/produkt/balkonkraftwerk-premium-set-trinasolar-goodwe/\">Trina Solar Vertex S</a> ist ein 420W Photovoltaikmodul mit monokristallinen Zellen und High-Density-Zellverbindungstechnologie. Verglichen mit dem Trina Vertex S 400W der ersten Generation, kann das verbesserte 420W Solarmodul mehr Energie kostengünstiger erzeugen, was den außergewöhnlichen Wert des Systems unter Beweis stellt. Seine Multi-Busbar-Technologie sorgt für mehr Absorption, geringen Serienwiderstand, verbesserte Stromableitung und erhöhte Zuverlässigkeit.\r\n\r\nDas Trina Solar Vertex S ist für den Einsatz bei Wind- und Schneelasten von 4000 - 6000 Pa (Testlasten) zertifiziert. Das hochtransparente und hitzevorgespannte Glas weist eine Dicke von 3,2mm auf und verfügt über eine Antireflexion-Beschichtung. Der Rahmen verfügt über eine 30mm eloxierte Aluminiumlegierung.\r\n<ul>\r\n \t<li>Leistung (Pmax): 420 W</li>\r\n \t<li>Spannung (Vmp): 42,2 V</li>\r\n \t<li>Max. Strom (Imp): 10,08 A</li>\r\n \t<li>Leerlaufspannung Voc): 50,2 V</li>\r\n \t<li>Kurzschlussstrom (Isc): 10,61 A</li>\r\n \t<li>Betriebstemperatur: -40°C - +85°C</li>\r\n \t<li>Max. Systemspannung: 1500V DC</li>\r\n \t<li>Zellenwirkungsgrad: 21,3%</li>\r\n \t<li>Farbe: schwarz</li>\r\n \t<li>Abmessungen: 1762 x 1134 x 30 mm</li>\r\n \t<li>Gewicht: 21,8 kg</li>\r\n \t<li>Schutzart Anschlussdose: IP68</li>\r\n \t<li>Datenblatt Download: <a href=\"https://cloud.sonneinstrom.de/index.php/s/RFyYsZtmga7j3tp\">TRINA SOLAR TSM-420DE09R.05 VERTEX S Black Frame</a></li>\r\n</ul>"}, {"id":31818,"key":"_et_pb_built_for_post_type","value":"page"}, {"id":31819,"key":"_et_pb_ab_subjects","value":""}, {"id":31820,"key":"_et_pb_enable_shortcode_tracking","value":""}, {"id":31821,"key":"_et_pb_ab_current_shortcode","value":"[et_pb_split_track id=\"4973\" /]"}, {"id":31822,"key":"_et_pb_custom_css","value":""}, {"id":31823,"key":"_et_pb_gutter_width","value":"3"}, {"id":31824,"key":"_global_colors_info","value":"{}"}, {"id":31825,"key":"_et_pb_first_image","value":""}, {"id":31826,"key":"_et_pb_truncate_post","value":""}, {"id":31827,"key":"_et_pb_truncate_post_date","value":""}, {"id":31828,"key":"_et_pb_product_page_layout","value":"et_default_layout"}, {"id":31829,"key":"_et_builder_version","value":"VB|Divi|4.23.4"},

Mit der Funktion item(response.result.meta_data, 13).id kommen ich an die ID Nummer (ROT) , die ich brauche. Leider ist aber bei jedem Produkt die id eine andere und der Datensatz sitz nicht immer auf 13.

Der gemeinsame Nenner ist "key":"_et_pb_old_content". Wie kann ich das bei dem JSON Resultat jetzt abfragen, damit ich die id von dem "key":"_et_pb_old_content" ?

Würde mich über eine Hilfe freuen. 

Lg Victor

2 Antworten

null
    • UweG
    • vor 3 Monaten
    • Gemeldet - anzeigen

    Wenn es sich um ein Array handelt, dann funktioniert folgender Code.
    (Habe das JSON in ein Textfeld kopiert und die eckigen Klammern am Anfang/Ende angefügt)

    let vJSON := parseJSON('Text (mehrzeilig)');
    let vSearchKey := "_et_pb_old_content";
    let vSearchId := null;
    for i in vJSON do
        if i.key = vSearchKey then vSearchId := i.id end
    end;
    number(vSearchId)

    Das setzt voraus, dass der Suchwert nur max. einmal vorhanden ist.
    Existiert der Suchwert mehrmals, muss man ein neues Array in der Schleife bauen um sich die Id's auswerfen zu lassen.

    • chalvi // WERBEAGENTUR GbR
    • VS2021
    • vor 3 Monaten
    • Gemeldet - anzeigen

    Vielen Dank, funktioniert super im Formelfeld. Wenn ich aber den Inhalt in ein Textfeld reinbekommen wir mit einem Button. Wie müsste dann die Void aussehen

    vJSON := parseJSON('Import Text Produktbeschreibung');
                let vSearchKey := "_et_pb_old_content";
                let vSearchId := null;
                let a := for i in vJSON do
                        if i.key = vSearchKey then vSearchId := i.id end
                    end;
           vSearchId = TEST;

     

    Lg Grüße

Content aside

  • vor 3 MonatenZuletzt aktiv
  • 2Antworten
  • 54Ansichten
  • 2 Folge bereits