Abfragen von JSON mit JSONPath oder SelectTokens? Mit JSON.NET in C#

Ich versuche, mit der Newtonsoft.Json.Net in c#. Das folgende ist ein Teil der JSON-Datei, die ich brauche zum abrufen von Daten aus:

{
    "video":{
        "local_recording_device":{
            "codecs":null
        },
        "preferred_string":"___PREFERRED___",
        "streams":{
            "99176901":{
                "id":"99176901",
                "name":"PTZ Camera",
                "site":"someone",
                "email":"[email protected]",
                "codec":"VP8 HD1 (720p)",
                "local":true,
                "screen":false,
                "fit_to_window":true,
                "stay_on_top":false,
                "layout":0,
                "native_width":1280,
                "native_height":720,
                "window_width":456,
                "window_height":254,
                "preferred":false,
                "local_recording":false,
                "device_id":"MJPEG Camera",
                "normalized_device_id":"MJPEGCamera",
                "shared_window_id":"MJPEG Camera",
                "enable":true,
                "big_location":"2",
                "x":347,
                "y":737,
                "window_id":"197302",
                "camera_id":null
            },
            "3091494011":{
                "id":"3091494011",
                "name":"Logitech Webcam C930e",
                "site":"Joe Smith",
                "email":"[email protected]",
                "codec":"VP8 Medium (CIF)",
                "local":false,
                "screen":false,
                "fit_to_window":true,
                "stay_on_top":false,
                "layout":0,
                "native_width":352,
                "native_height":288,
                "window_width":864,
                "window_height":702,
                "preferred":true,
                "local_recording":false,
                "enable":true,
                "big_location":"1",
                "x":204,
                "y":0,
                "window_id":"197296",
                "camera_id":null
            },
            "3798287599":{
                "id":"3798287599",
                "name":"Drive Camera",
                "site":"ASiteName",
                "email":"[email protected]",
                "codec":"VP8 HD1 (720p)",
                "local":true,
                "screen":false,
                "fit_to_window":true,
                "stay_on_top":false,
                "layout":0,
                "native_width":1280,
                "native_height":720,
                "window_width":456,
                "window_height":254,
                "preferred":true,
                "local_recording":false,
                "device_id":"Logitech Webcam C930e",
                "normalized_device_id":"LogitechWebcamC930e",
                "shared_window_id":"Logitech Webcam C930e",
                "enable":true,
                "big_location":"3",
                "x":814,
                "y":737,
                "window_id":"262822",
                "camera_id":null
            }
        }
    }
}

So, innerhalb der JSON-Daten: "video", "streams" innen strömen kann x Anzahl der verschiedenen streams (stream-id). Die Bäche in "streams" (die lange zahlen) ändern kann jederzeit. In meinem Beispiel hier sind es drei. Ich brauche zu suchen Sie durch alle streams in "streams" und sehen, ob jeder von Ihnen hat eine "E-Mail", entspricht eine bestimmte E-Mail-Adresse. Jeder der streams hat einen "E-Mail". Wenn eine E-Mail entspricht meine angegebene E-Mail-Adresse, die ich brauche, um zu überprüfen, dass streams "aktivieren", um zu sehen, ob es wahr oder falsch ist.

Jede Hilfe ist geschätzt, führt mich in die richtige Richtung. Ich habe nicht gearbeitet mit einem JSON-Daten vor.

Kann man den JSON, mit dem Sie arbeiten und die erwartete Ausgabe?

InformationsquelleAutor stopmotion24 | 2015-06-12

Schreibe einen Kommentar