C# &引用;无法将当前JSON对象反序列化为类型
因此,我有以下任务-我需要反序列化存储在我的应用程序的追索权文件夹中的Jason对象数组 到目前为止,我已经访问了追索权并将其存储到var中:C# &引用;无法将当前JSON对象反序列化为类型,c#,json,deserialization,C#,Json,Deserialization,因此,我有以下任务-我需要反序列化存储在我的应用程序的追索权文件夹中的Jason对象数组 到目前为止,我已经访问了追索权并将其存储到var中: var jsonData=Resources.SamplePoints 已将数组转换为字符串: string jsonObjts=Encoding.Default.GetString(jsonData) 并尝试将结果写入字典列表 List EntityData=Newtonsoft.Json.JsonConvert.DeserializeObject(j
var jsonData=Resources.SamplePoints代码>
已将数组转换为字符串:
string jsonObjts=Encoding.Default.GetString(jsonData)代码>
并尝试将结果写入字典列表
List EntityData=Newtonsoft.Json.JsonConvert.DeserializeObject(jsonObjts)代码>
但是,当我运行和测试应用程序时,会显示上面的错误消息
有谁能帮我找到正确的方法来解决这个问题吗
有关对象的样本:
"samples": [
{
"date": "2014-08-10T09:00:00Z",
"temperature": 10,
"pH": 4,
"phosphate": 4,
"chloride": 4,
"nitrate": 10
},
{
"date": "2014-08-12T09:05:00Z",
"temperature": 10.5,
"pH": 5,
"chloride": 4,
"phosphate": 4
},
您不想创建一个类来表示JSON有什么原因吗
public class Rootobject
{
public List<Sample> Samples { get; set; }
}
public class Sample
{
public DateTime Date { get; set; }
public float Temperature { get; set; }
public int Ph { get; set; }
public int Phosphate { get; set; }
public int Chloride { get; set; }
public int Nitrate { get; set; }
}
公共类根对象
{
公共列表样本{get;set;}
}
公共类样本
{
公共日期时间日期{get;set;}
公共浮子温度{get;set;}
公共整数Ph{get;set;}
公共整数{get;set;}
公共整数{get;set;}
公共int{get;set;}
}
然后可以反序列化:
var obj = JsonConvert.DeserializeObject<Rootobject>(json);
var obj=JsonConvert.DeserializeObject(json);
如果你还想用字典,我想你需要这样的东西:
var obj = JsonConvert.DeserializeObject<Dictionary<string, List<Dictionary<string, object>>>>(json);
var obj=JsonConvert.DeserializeObject(json);
您在泛型类型列表中的架构与json的架构不匹配。如果要强制转换到列表,请确保反序列化
对象具有名为samples
的属性,该属性属于IEnumerable
类型。或者您最好发布用于反序列化的对象。可能,“日期”:“2014-08-12T09:05:00Z”是个问题。请尝试按double.Parse列出或列出并重新分析数字。在使用JSON.NET之前,请阅读此内容。您可以从这里基于JSON响应生成C#对象。谢谢,这两种情况都适用。我将使用一个类来表示Jason对象