【发布时间】:2020-01-31 10:15:01
【问题描述】:
我有从 HTTP 请求发布的 json。我正在尝试反序列化它以在 for each 循环中使用。不幸的是,它的格式是一个对象列表(我相信)。
到目前为止,我有以下内容:
dynamic jsonObj = JsonConvert.DeserializeObject(await req.ReadAsStringAsync());
foreach (var p in jsonObj.hireSchedules)
{
///do something
}
我的json如下:
{
"hireSchedules": [
{
"plant": "7246054",
"num" : "79",
"hire": "1137277"
},
{
"plant": "7246055",
"num" : "80",
"hire": "1137278"
}
]
}
我有以下课程:
public class HireSchedule
{
public string plant { get; set; }
public string num { get; set; }
public string hire { get; set; }
}
public class RootObject
{
public List<HireSchedule> hireSchedules { get; set; }
}
任何帮助将不胜感激。谢谢!
【问题讨论】:
-
RootObject jsonObj = JsonConvert.DeserializeObject<RootObject>(await req.ReadAsStringAsync());? -
在我的 foreach 循环之前使用它时出现以下错误:“foreach 语句无法对 'RootObject' 类型的变量进行操作,因为 'RootObject' 不包含 'GetEnumerator' 的公共实例定义”
-
当你得到这个错误时,你的foreach语句怎么样?
-
如上:foreach (var p in jsonObj.hireSchedule) { //stuff }
-
是的,这是复制/粘贴中的错误
标签: c# json foreach deserialization