检索 Json 字符串中每条记录的值

本文关键字:记录 Json 字符串 检索 | 更新日期: 2023-09-27 18:34:48

我目前使用以下代码来检索我的 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

这工作正常,但是我希望使用 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)
}

但这一个接一个地拆分了值。

检索 Json 字符串中每条记录的值

这行不通吗?

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)
        }

试试这个方法

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

这应该有效