如何在 C# 中访问匿名类型 JArray 的字段?
How can i access fields of anonymous typed JArray in C#?
string sampleString = "[{\"id\":\"1\",\"status\":302},{\"id\":\"2\",\"status\":302},{\"id\":\"3\",\"status\":302},{\"id\":\"4\",\"status\":302}]";
JArray json = JArray.Parse(sampleString );
TempValue t;
foreach(JObject obj in json)
{
t = new TempValue {
id =//id of json,
status=//state of json
};
}
我想访问 json 匿名对象的值以分配给 t 对象。
由索引器
foreach(JObject obj in json)
{
t = new TempValue {
id = obj["id"].ToString() ,
...
};
Gets or sets the JToken with the specified property name.
使用类型对象总是好的,以避免输入错误。在这种情况下,使用 json 字符串的结构创建一个 class,如下所示:
public class StatusObj
{
public string id { get; set; }
public int status { get; set; }
}
将 json 字符串反序列化为您的 class 列表,如下所示:
List<StatusObj> obj = JsonConvert.DeserializeObject<List<StatusObj>>(sampleString);
然后你可以像这样遍历列表:
foreach (var item in obj)
{
var id = item.id;
var status = item.status;
}
整个代码如下所示:
class Program
{
static void Main(string[] args)
{
string sampleString = "[{\"id\":\"1\",\"status\":302},{\"id\":\"2\",\"status\":302},{\"id\":\"3\",\"status\":302},{\"id\":\"4\",\"status\":302}]";
List<StatusObj> obj = JsonConvert.DeserializeObject<List<StatusObj>>(sampleString);
foreach (var item in obj)
{
var id = item.id;
var status = item.status;
}
}
}
public class StatusObj
{
public string id { get; set; }
public int status { get; set; }
}
注意。 Newtonsoft.Json 需要安装软件包。您还可以将任何 json 转换为 class here
string sampleString = "[{\"id\":\"1\",\"status\":302},{\"id\":\"2\",\"status\":302},{\"id\":\"3\",\"status\":302},{\"id\":\"4\",\"status\":302}]";
JArray json = JArray.Parse(sampleString );
TempValue t;
foreach(JObject obj in json)
{
t = new TempValue {
id =//id of json,
status=//state of json
};
}
我想访问 json 匿名对象的值以分配给 t 对象。
由索引器
foreach(JObject obj in json)
{
t = new TempValue {
id = obj["id"].ToString() ,
...
};
Gets or sets the JToken with the specified property name.
使用类型对象总是好的,以避免输入错误。在这种情况下,使用 json 字符串的结构创建一个 class,如下所示:
public class StatusObj
{
public string id { get; set; }
public int status { get; set; }
}
将 json 字符串反序列化为您的 class 列表,如下所示:
List<StatusObj> obj = JsonConvert.DeserializeObject<List<StatusObj>>(sampleString);
然后你可以像这样遍历列表:
foreach (var item in obj)
{
var id = item.id;
var status = item.status;
}
整个代码如下所示:
class Program
{
static void Main(string[] args)
{
string sampleString = "[{\"id\":\"1\",\"status\":302},{\"id\":\"2\",\"status\":302},{\"id\":\"3\",\"status\":302},{\"id\":\"4\",\"status\":302}]";
List<StatusObj> obj = JsonConvert.DeserializeObject<List<StatusObj>>(sampleString);
foreach (var item in obj)
{
var id = item.id;
var status = item.status;
}
}
}
public class StatusObj
{
public string id { get; set; }
public int status { get; set; }
}
注意。 Newtonsoft.Json 需要安装软件包。您还可以将任何 json 转换为 class here