我想将此Json
设置为模型,这就是
杰森:[{"dimensions": [ "www "], "metrics ": [{ "values ": [ "2 " ]},{ "values ": [ "0 "]}]}]
并创建此模型以将json反序列化为此模型:
public class ResultModel
{
public List<string> dimensions { get; set; }
public List<Metric> metrics { get; set; }
}
和
public class Metric
{
public List<string> values { get; set; }
}
并使用Newtonsoft
:
var model = Newtonsoft.Json.JsonConvert.DeserializeObject<ResultModel>(json);
但它不起作用并给我这个错误:
'无法将当前JSON数组(例如[1,2,3])反序列化为类型“ResultModel”,因为该类型需要JSON对象(例如{“name”:“value”})才能正确反序列化。“ / p>
有什么问题?
答案 0 :(得分:2)
很容易错过你的JSON真的是数组,即使它只包含一个对象。所以你必须将它反序列化为数组:
Product
答案 1 :(得分:1)
如果你确定最多只有一个型号,你可以这样做:
var model = JsonConvert.DeserializeObject<IEnumerable<ResultModel>>(json).FirstOrDefault();
否则,您应该将其反序列化为模型集合,如评论中所示:
// models is an IEnumerable<ResultModel>
var models = JsonConvert.DeserializeObject<IEnumerable<ResultModel>>(json);