在C#中将json转换为对象
本文关键字:对象 转换 json 中将 | 更新日期: 2023-09-27 17:59:17
我有以下格式的数据。我想将这些数据转换为对象。
Result = {
"Location": [
"bangalore",
1,
"chennai",
1,
"mumbai",
1,
"delhi",
0,
"Agra",
0
]
}
在我的Location.cs中,我有以下字段。我想把数据分配给这个字段。我怎样才能实现这个
public string loc { get; set; }
public int count { get; set; }
我试过
Location = Result.ToObject<List<Location>>();
但不工作,得到以下错误
{"无法将当前JSON对象(例如{''"name ''":''"value ''"})反序列化为类型"System.Collections.Generic.List`1[Location]",因为该类型需要JSON数组(例如[1,2,3])才能正确反序列化。''r''n若要修复此错误,请将JSON更改为JSON数组(如[1,3,3]),或更改反序列化的类型,使其成为正常的.NET类型(例如,不是像integer这样的基元类型,也不是像数组或List这样的集合类型),可以从JSON对象反序列化。JsonObjectAttribute也可以添加到类型中,以强制它从JSON对象反序列化。''''r''n路径"位置"。"}
看看作为的一部分的本地json反序列化。净
MSDN-如何:序列化和反序列化JSON数据
问题是:Result
是JSON对象,而不是JSON数组,因此无法将其转换为List<Location>
。
您需要一个包含位置列表的类,然后转换为该类:
public class LocationsContainer
{
public List<Location> Location { get; set; }
}
Result.ToObject<LocationsContainer>();
尝试Json。NET库。
List<Location> locations = JsonConvert.DeserializeObject<List<Location>>(result);