2013-10-10 3 views
0

я в настоящее время используется следующий код для получения значения первой записи в моей строке Json,Получить значения каждой записи в Json строке

string JsonString = "{'response':[{'bigINT':123456789,'smallINT':12345},{'bigINT':00000000,'smallINT':00000},{'bigINT':999999999,'smallINT':99999}]}"; 
JObject Jobj = JObject.Parse(JsonString); 

int firstbigINT = (int)Jobj["response"][0]["bigINT"];  // 123456789 
int firstsmallINT = (int)Jobj["response"][0]["smallINT"]; // 12345 

Это прекрасно работает, однако я хотел бы перебора всех записей с помощью a foreach что-то вроде:

foreach (string record in Jobj) 
{ 
    int bigINT = (int)Jobj["response"][0]["bigINT"];  
    int smallINT = (int)Jobj["response"][0]["smallINT"]; 

    use(bigINT,smallINT) 
    // then go to next record 
} 

, поскольку мне нужны оба значения вместе.

Я попытался с помощью -

JsonTextReader reader = new JsonTextReader(new StringReader(JsonString)); 

while (reader.Read()) 
{ 
    Console.WriteLine(reader.TokenType + " - " + reader.ValueType + " - " + reader.Value) 
} 

Но это разделить значения от один за другим.

ответ

0

Это не работает?

string JsonString = "{'response':[{'bigINT':123456789,'smallINT':12345},{'bigINT':00000000,'smallINT':00000},{'bigINT':999999999,'smallINT':99999}]}"; 
     JObject Jobj = JObject.Parse(JsonString); 

     foreach (var response in Jobj["response"]) 
     { 
      int firstbigINT = (int)response["bigINT"]; 
      int firstsmallINT = (int)response["smallINT"]; 
      use(bigINT,smallINT) 
     } 
+0

Да! будет отмечать как правильные, когда я могу .... – Ebikeneser

0

Попробуйте этот метод

object obj = Newtonsoft.Json.JsonConvert.DeserializeObject<List<YourClassName>>(json .ToString()); 

Это должно работать

Смежные вопросы