2015-07-28 5 views
5

में जेएआरए से मूल्य प्राप्त करना मुझे अपने जेएरे से डेटा प्राप्त करने में समस्या हो रही है, विशेष रूप से मैं आईडी मान तक पहुंचने का प्रयास कर रहा हूं। यहाँ एक JSON उदाहरणJSON.net

{ 
"page": 1, 
"totalPages": 5, 
"pageSize": 2, 
"sortField": "label", 
"sortOrder": "asc", 
"content": [ 
    { 
    "organizationId": "Org123", 
    "id": "333", 
    "label": "comp1" 
    }, 
    { 
    "organizationId": "Org123", 
    "id": "444", 
    "label": "comp2" 
    } 
] 
} 

और यहाँ है कि मैं क्या सी #

 JArray jArray = new JArray(jsonString); 

     foreach (JValue item in jArray) 
     { 
      Console.WriteLine(item["id"]); 
     } 

मैं जानता हूँ कि मैं इसे एक आईडी प्रकार है सुनिश्चित करने के लिए JValue जांच करने की जरूरत में है है है, लेकिन मैं वस्तु पर उलझन में हूँ JArray में टूटने के बाद असाइन किए गए प्रकार।

+0

http://stackoverflow.com/questions/18638640/json-net-use-selecttoken-to-get-a-value-without-know-an-element-name यह जांचें – FirebladeDan

+0

आप 'JToken.Parse (string)' विधि का उपयोग कर सकते हैं। –

उत्तर

5

सबसे पहले, आप शीर्ष स्तर पर किसी ऑब्जेक्ट से निपट रहे हैं। वस्तु को पार्स करने के बाद आप content सरणी में देखने की जरूरत है:

var obj = JObject.Parse(json); 

foreach (JObject element in obj["content"]) 
{ 
    Console.WriteLine(element["id"]); 
} 

यहाँ एक उदाहरण है: https://dotnetfiddle.net/DhVZFf

इसके अलावा (और यह सिर्फ एक टाइपो हो सकता है), आपके JSON विकृत है। विशेष रूप से, अल्पविराम content सरणी में तत्वों को अलग गलत जगह पर हैं:

{ 
    "organizationId": "Org123", 
    "id": "333", 
    "label": "comp1", // <--- 
} 
{ 
    "organizationId": "Org123", 
    "id": "444", 
    "label": "comp2", 
} 

उन अल्पविराम के के बीच सरणी तत्व होना चाहिए:

{ 
    "organizationId": "Org123", 
    "id": "333", 
    "label": "comp1" 
}, // <--- 
{ 
    "organizationId": "Org123", 
    "id": "444", 
    "label": "comp2" 
}