0

JSON in Tabelle oder Ansicht ausgeben

Hallo zusammen,

 

ich möchte gerne einen JSON String als Tabelle (html oder Ninox Ansicht) ausgeben.

Wie kann ich dies umsetzen ohne alle einzelnen JSON Attribute einzeln anzusprechen?

 

{"Angebot":28413,"Alternativ":false,"Optional":false,"Position":1,"Anzahl":1,"Artikelnummer im Angebot":true,"Art":"82","Beschreibung":"I...",...}

Viele Grüße

chris

4 Antworten

null
    • T_Bartzsch
    • vor 1 Jahr
    • Gemeldet - anzeigen

    Ich glaube an die Keys (Angebot, Alternativ usw. ) kommt man so ohne Weiteres nicht dran wenn du mit parseJSON arbeitest. Du kommst da nur an die Werte 

    parseJSON(DEINJSONSTRING).Angebot gibt dir dann 28413 aus...

    Ist das JSON denn prinzipiell immer gleich aufgebaut? Dann könnte man eine feste for-Schleife aufsetzen, die das JSON durcharbeitet und dir die Werte ausgibt.

    ODER du wandelst das JSON in einen bereinigten Text um (mit replace alles unnötige entfernen) und arbeitest dann mit split(), trennst erst nach "," und dann nach ":" - dann hast du auch wieder ein Array welches du mit einer for-Schleife ausgeben kannst... damit kannst du dir auch eine simple html-Tabelle in einem Funktionsfeld bauen... 

      • mirko3
      • vor 1 Jahr
      • Gemeldet - anzeigen

      T. Bartzsch ups. Da ist schon einer ;-)

    • mirko3
    • vor 1 Jahr
    • Gemeldet - anzeigen

    Ich weiß keine Möglichkeit über ein JSON-Objekt zu iterieren (in NINOX), da man wohl die Eigenschaften hier nicht ansprechen kann. Aber ich könnte mir vorstellen, dass man den String auswerten kann, wie in dem Beispiel unten. Ansonsten meldet sich vielleicht noch jemand, der es besser weiß.

    let stringJSON := formatJSON({
            Angebot: 28413,
            Alternativ: false,
            Optional: false,
            Position: 1,
            Anzahl: 1,
            'Artikelnummer im Angebot': true,
            Art: 82,
            Beschreibung: "the best"
        });
    let aryJSON := split(replacex(stringJSON, "}|{", ""), ",");
    for i in aryJSON do
        item(split(i, ":"), 1)
    end
    
    • chris.3
    • vor 1 Jahr
    • Gemeldet - anzeigen

    Super Danke!

     

    Konnte mir so eine einfache Tabelle in folgender Form bauen:

    html("
    <html>
      <head>
        <style>
          table {
            width: 100%;
          }
          th, td {
            border: 1px solid black;
            padding: 8px;
          }
          th {
            background-color: lightgray;
          }
        </style>
      </head>
      <body>
        <table>
          <tr>
            <th>Feld</th>
            <th>Wert</th>
          </tr>" + (
        let aryJSON := split(replacex(formatJSON(data), "}|{", ""), ",");
        for i in aryJSON do
            "<tr><td>" + item(split(i, ":"), 0) + " </td><td> " + item(split(i, ":"), 1) + "</td></tr>"
        end + "
        </table>
      </body>
    </html>