2017-03-22 3 views
0

Ich habe einen JSON-String items dhWie Anzahl von JSON Elementen von Elementen in C# zählen

{ 
"items": [ 
    { 
    "kind": "youtube#playlistItem", 
    "etag": "\"uQc-MPTsstrHkWLmeNsM/NAYVM2gp_1c4XbQ9zYswb1-_gnk\"", 
    "id": "UExGS2IhV2ZJM2tZMTg2MWZZeDR2cS41NEM3RjdGQ0FDRjkwNUQ5", 
    "snippet": { 
    "publishedAt": "2017-03-21T20:38:22.000Z", 
    "channelId": "UCRUNoQu8kdtsY94D9MZ_sXA", 
    "title": "News Plus 21-03-17", 
    "description": "News Plus 21-03-17", 
    "thumbnails": { 
    "default": { 
     "url": "https://i.ytimg.com/vi/FIXv7nmU/default.jpg", 
     "width": 120, 
     "height": 90 
    }, 
    "medium": { 
     "url": "https://i.ytimg.com/vi/FFynmU/mqdefault.jpg", 
     "width": 320, 
     "height": 180 
    }, 
    "high": { 
     "url": "https://i.ytimg.com/vi/FIXvnmU/hqdefault.jpg", 
     "width": 480, 
     "height": 360 
    } 
    }, 
    "channelTitle": "", 
    "playlistId": "PLFKb5r-iLUmbOhkY1861fYx4vq", 
    "position": 0, 
    "resourceId": { 
    "kind": "youtube#video", 
    "videoId": "FIXvFylfjwmU" 
    } 
    } 
    }, 
    { 
    "kind": "youtube#playlistItem", 
    "etag": "\"uQc-MPTsstrHkeNsM/TKjx1_sGvJVB3tX8cFnxsE\"", 
    "id": "UExGS2I1ci1pTFVtYk9oc2htryhjrtUNBMTM5RDMyREQ5", 
    "snippet": { 
    "publishedAt": "2017-03-21T19:34:48.000Z", 
    "channelId": "UCtsY94D9MZ_sXA", 
    "title": "Private video", 
    "description": "This video is private.", 
    "channelTitle": "Capital TV", 
    "playlistId": "PLFKb5r-iLUmbOh861fYx4vq", 
    "position": 1, 
    "resourceId": { 
    "kind": "youtube#video", 
    "videoId": "VQ1rDS59318" 
    } 
    } 
    }, 
    { 
    "kind": "youtube#playlistItem", 
    "etag": "\"uQc-MPTsstrHkWLmeNsM/JXH9kcF8my3r2Yl0OPK3U\"", 
    "id": "UExGS2I1ci1pTFVtYhV2ZJM2tZMTg2MWZZeDR2BBNzZCQzY5MDk4", 
    "snippet": { 
    "publishedAt": "2017-03-21T19:06:41.000Z", 
    "channelId": "UCRUNtrhjsY94D9MZ_sXA", 
    "title": "Director NAB Corruption Scandal", 
    "description": "", 
    "thumbnails": { 
    "default": { 
     "url": "https://i.ytimg.com/vi/BCnejgyQ/default.jpg", 
     "width": 120, 
     "height": 90 
    }, 
    "medium": { 
     "url": "https://i.ytimg.com/vi/BCnejyQ/mqdefault.jpg", 
     "width": 320, 
     "height": 180 
    }, 
    "high": { 
     "url": "https://i.ytimg.com/vi/BCneyQ/hqdault.jpg", 
     "width": 480, 
     "height": 360 
    } 
    }, 
    "channelTitle": "Capital TV", 
    "playlistId": "PLFKb5r-iLUmbOhkY1861fYx4vq", 
    "position": 2, 
    "resourceId": { 
    "kind": "youtube#video", 
    "videoId": "BCnhtjty2gyQ" 
    } 
    } 
    } 
    } 
] 
} 

Als items zwei Elemente hat, aber ich möchte in snippet die Anzahl des Elements zählen, kann, wie ich zähle, ich habe die json analysieren und versuchen Länge zu erhalten, wie,

dynamic result = JsonConvert.DeserializeObject("jsonStr"); 
foreach (var res in result.items) 
{ 
    int size = res.snippet.count; // Not working 
} 
+0

Sie sollten wirklich eine Klasse für Ihre Daten schreiben, anstatt 'dynamic' zu verwenden. – stybl

+0

Sie können diese Eigenschaft in ein JArray analysieren und haben die Anzahl der Elemente. – Veverke

+0

Was bedeutet "nicht funktioniert"? Erhalten Sie einen Kompilierungsfehler? Ein Laufzeitfehler? Das falsche Ergebnis? Etwas anderes? – Chris

Antwort

0

etwas andere Syntax zu aspark-Lösung,

private static void Main(string[] args) 
{ 
    string json = @" 
     { 
      a: 1, 
      b: 2, 
      c: [ 
       {c1: 'asdas', c2:231}, 
       {c1: 'aaaaaa', c2: 100}, 
       {c1: 'x', c2: 83823} 
      ] 
     } 
     "; 

    Console.WriteLine(JObject.Parse(json)["c"].Count()); 
    //following also works 
    Console.WriteLine(o.Property("c").Value.Count()); 

    //both print 3 
} 
1
(res.snippet as JObject).Count 
Verwandte Themen