所以我有一个带有json数组的DeserializeObject的问题,我无法在这里找到我做错的事情:
{"name":"Pannbiff n\u00f6tf\u00e4rs stekt","number":1128,"nutrientValues":
{"energyKj":694,"energyKcal":166,"protein":17.2,"fat":7.6,"carbohydrates":7}}
我的模型看起来像这样:
我的代码如下:
var responseText = streamReader.ReadToEnd();
var jsonSerializer = JsonConvert.DeserializeObject(responseText);
public class Asware
{
public IEnumerable<NutrientValues> nutrientValues { get; set; }
}
public class NutrientValues
{
public int energyKcal { get; set; }
public double protein { get; set; }
public double carbohydrates { get; set; }
public int fat { get; set; }
}
public class Asware
{
public IEnumerable<NutrientValues> nutrientValues { get; set; }
}
public class NutrientValues
{
public int energyKcal { get; set; }
public double protein { get; set; }
public double carbohydrates { get; set; }
public int fat { get; set; }
}
在这里我看不出有什么问题我也试过了: JsonConvert.DeserializeObject&GT;(responseText的)
答案 0 :(得分:0)
问题在于,在源JSON中,nutrientValues
是单个对象,而不是对象数组。
如果您按如下方式更改模型,则应正确序列化:
public class Asware
{
public NutrientValues nutrientValues { get; set; }
}
或者,如果你控制了JSON,那么你可以修改它以包含一系列营养素,如下所示,[ ]
个字符表示多个项目。
{"name":"Pannbiff n\u00f6tf\u00e4rs stekt","number":1128,"nutrientValues":
[{"energyKj":694,"energyKcal":166,"protein":17.2,"fat":7.6,"carbohydrates":7}]}