检索 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)
}
但这一个接一个地拆分了值。
这行不通吗?
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());
这应该有效