我有以下格式的数据。我想将这些数据转换为对象。
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>>();
但无法解决以下错误
{&#34;无法将当前JSON对象(例如{\&#34; name \&#34;:\&#34; value \&#34;})反序列化为类型&System;系统。 Collections.Generic.List`1 [位置]&#39;因为类型需要一个JSON数组(例如[1,2,3])才能正确反序列化。\ r \ n要解决此错误,要么将JSON更改为JSON数组(例如[1,2,3])或更改反序列化类型,以便它是一个普通的.NET类型(例如,不是像整数的基本类型,不是像数组或列表那样的集合类型),可以从JSON对象反序列化。 JsonObjectAttribute也可以添加到类型中以强制它从JSON对象反序列化。\ r \ n路由&#39;位置&#39;。&#34;}
答案 0 :(得分:1)
看看作为.NET
的一部分的原生json deserializaton答案 1 :(得分:0)
问题是:Result
是JSON对象,而不是JSON数组,因此您无法将其转换为List<Location>
。
您需要一个包含位置列表并转换为该类的类:
public class LocationsContainer
{
public List<Location> Location { get; set; }
}
Result.ToObject<LocationsContainer>();
答案 2 :(得分:0)
尝试使用Json.NET库。
List<Location> locations = JsonConvert.DeserializeObject<List<Location>>(result);