Einzelnen Beitrag anzeigen

Andreas Schilling

Registriert seit: 6. Sep 2006
106 Beiträge
 
Delphi 10.3 Rio
 
#1

JSON mit Punkt im Namen

  Alt 5. Apr 2023, 10:41
Den Abruf eines JSON-Objekt bekomme ich hin. Sieht dann so aus
Delphi-Quellcode:
{
    "pagination": {
     
    }
,
    "data": [
        {
            "id": 158,
            ....
            "initialConfig": {
                "APN": "iot.1nce.net",
                ...
            }
,
            "properties": {
                "debug.monitor": {
                    "name": "debug.monitor",
                    "value": "...",
                    "updatedAt": "2023-01-31T09:23:15.611854289Z"
                }
,
                ....
                "platform.wmbus.receivedMeters": {
                    "name": "platform.wmbus.receivedMeters",
                    "value": [
                        "01280XXX",
                        "03780XXX",
                        ....
                    ],

Das Auslesen von ID funktioniert mit:

sID := JSONValue.GetValue<string>('data['+inttostr(i)+'].id');
Das Auslesen "initialConfig": { "APN": "iot.1nce.net", funktioniert auch mit

sAPN := JSONValue.GetValue<string>('data['+inttostr(i)+'].initialConfig.APN');
Aber wenn ein Punkt im Knotennamen ist "properties": { "debug.monitor": { "name" ... kommt eine Fehlermeldung "Wert'data[0].properties.debug.monitor.name' nicht gefunden" bei

sProperties_3 := JSONValue.GetValue<string>('data['+inttostr(i)+'].properties.debug.monitor.name');
Wie würde der Syntax bei dieser Bedingung lauten?

Gruß Andreas
  Mit Zitat antworten Zitat