[英]Painless JSON deserialization in C# using JSON.NET
使用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"
}
}
}
要创建单独的类还是作为集合?
编辑:将有多个“ 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#部分
参见达林的答案 。
我认为您可以轻松地修改提供的源代码来满足您的需求。 它内置于.NET框架( System.Web.Script.Serialization
)中,因此没有外部依赖项。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.