使用JSON.NET在C#中进行轻松的JSON反序列化
本文关键字:JSON 反序列化 NET 使用 | 更新日期: 2023-09-27 18:25:44
使用JSON.NET在C#中反序列化此JSON最简单的方法是什么?
{
"serNo":{
"A4":{
"vol":[["0","100","0,1"],["0","n","0"]],
"fix":"900"
},
"A3":{
"vol":[["0","200","0,5"],["0","n","0"]],
"fix":"700"
}
}
}
要创建单独的类还是作为集合?
EDIT:将有多个"serNo"属性。
在我看来,反序列化任何JSON最简单的方法是使用JSON.NET库。另请参阅http://json.codeplex.com.
编辑:另请参阅关于堆栈溢出的其他问题:如何使用JSON.NET进行反序列化?
您可以在轻量级JavaScriptSerializer中使用内部版本要序列化/反序列化的类不需要任何属性。
它还可以处理匿名类型。
序列化:
var serializer = new System.Web.Script.Serialization.JavaScriptSerializer();
var objectAsJsonString = serializer.Serialize(objectToSerialize);
反序列化:
var serializer = new System.Web.Script.Serialization.JavaScriptSerializer();
SomeClass deserializedObject = serializer.Deserialize<SomeClass>(objectToDeserialize);
以下是早期相关问题/答案的链接:在asp.Net 中将JSON转换为.Net对象时出错
好的,我通过创建这个类解决了JSON.NET的问题:
class Counter { public double[][] vol { get; set; } public double fix { get; set; } }
和
使用以下表达式反序列化JSON:
Dictionary<string, Dictionary<string, Counter>> counters = JsonConvert.DeserializeObject<Dictionary<string, Dictionary<string, Counter>>>(arg.Args[7]);
其中arg。Args[7]是JSON。
查看json.org 上的C#部分
请参阅Darin的回答。
我认为您可以很容易地修改提供的源代码以满足您的需求。这是.NET框架(System.Web.Script.Serialization
)内置的,因此不存在外部依赖关系。