string json = "{"httpStatusCode": "OK",
"count": 10,
"entities": [
{
"responseCode": 200,
"ResponseCode": 0,
"headers": null,
"Headers": null,
"content": "name1"
},
{
"responseCode": 200,
"ResponseCode": 0,
"headers": null,
"Headers": null,
"content": "name2"
}
]
}"
मैं कोड के इस टुकड़े का उपयोग करता हूं और "सामग्री" (नाम 1, नाम 2) के मूल्य को प्रिंट नहीं कर सकता, यह सिर्फ अगर कथन को छोड़ देगा
JObject o = JObject.Parse(json);
foreach (var element in o["entities"])
{
foreach(var ob in element)
{
if(ob.toString() == "content")
Console.WriteLine(ob);
}
}
तो, मैं name1 और name2 का प्रिंट आउट कैसे ले सकता हूं? धन्यवाद।
2 जवाब
मुझे लगता है कि आपका उदाहरण कोड Newtonsoft.Json लाइब्रेरी का उपयोग करता है।
आपके कोड में कुछ संशोधन वास्तव में आपका कोड काम कर सकते हैं। आपको "सामग्री" नामक संपत्ति के लिए अपना JSON खोजना होगा। इस उद्देश्य के लिए अपना JToken
से JProperty
टाइप करें। तब आप इसके नाम और मूल्य को इस तरह एक्सेस कर सकते हैं:
JObject o = JObject.Parse(json);
foreach (var element in o["entities"])
{
foreach (var ob in element)
{
if (ob is JProperty prop && prop.Name == "content")
Console.WriteLine(prop.Value.ToString());
}
}
यदि आप केवल सामग्री प्राप्त करना चाहते हैं, तो आप SelectToken या एक का उपयोग कर सकते हैं लूप की तरह:
JObject o = JObject.Parse(json);
//SelectToken
List<string> contents = o.SelectToken("$.entities").Select(o => o.SelectToken("content").ToString()).ToList();
//loop
foreach (var element in o["entities"])
{
string content = ((JValue)element["content"])?.Value?.ToString();
if (content != null)
Console.WriteLine(content);
}
परीक्षण के लिए :
string json = @"{
""httpStatusCode"":""OK"",
""count"":10,
""entities"":[
{
""responseCode"":200,
""ResponseCode"":0,
""headers"":null,
""Headers"":null,
""content"":""name1""
},
{
""responseCode"":200,
""ResponseCode"":0,
""headers"":null,
""Headers"":null,
""content"":""name2""
}
]
}";
JObject o = JObject.Parse(json);
List<string> contents = o.SelectToken("$.entities").Select(o => o.SelectToken("content").ToString()).ToList();
Console.WriteLine(string.Join(",", contents));
परिणाम
name1,name2
मुझे आशा है कि आपको यह मददगार लगा होगा।
संबंधित सवाल
नए सवाल
c#
C # (उच्चारण "तेज देखें") Microsoft द्वारा विकसित एक उच्च स्तरीय, सांख्यिकीय रूप से टाइप किया हुआ, बहु-प्रतिमान प्रोग्रामिंग भाषा है। C # कोड आमतौर पर Microsoft के .NET परिवार के टूल और रन-टाइम को लक्षित करता है, जिसमें .NET फ्रेमवर्क, .NET कोर और Xamarin अन्य शामिल हैं। C # या C # के औपचारिक विनिर्देश में लिखे गए कोड के बारे में प्रश्नों के लिए इस टैग का उपयोग करें।