9 c# serialization deserialization
我正在将JSON字符串反序列化为对象.我不能使用a,Dictionary<string, string>因为里面的JSON很复杂.我知道Dictionary<string, dynamic>,但我已经完成了.NET 3.5框架,所以我无法使用dynamic.
所以我最终到了这里:
object json = new JavaScriptSerializer().Deserialize<object>("myjson");
Run Code Online (Sandbox Code Playgroud)
但我认为没有json反思就无法进入.有小费吗?
Pro*_*sta 13
我将使用ServiceStack.Text并使用JsonObject.Parse解析它.
然后你有一个易于阅读的数据字典.
ServiceStack 比Json.NET 更快更好.
myt*_*thz 10
这可以通过ServiceStack的JsonSerializer轻松完成:
var dictionary = JsonSerializer.DeserializeFromString<Dictionary<string,string>>(myJson);
Run Code Online (Sandbox Code Playgroud)
如果使用Extension方法,它会更简洁:
var dictionary = myJson.FromJson<Dictionary<string,string>>();
Run Code Online (Sandbox Code Playgroud)
否则,如果您愿意,可以使用动态API:
var jsonObj = JsonObject.Parse(myJson);
var value = jsonObj.Get("key");
Run Code Online (Sandbox Code Playgroud)
以下是一些实际用法,显示了可以反序列化动态JSON有效负载的不同方法:
作为奖励,您将使用.NET最快的JSON序列化程序 :)
ServiceStack的Json Serializer也可以在NuGet上下载:
PM> Install-Package ServiceStack.Text
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8807 次 |
| 最近记录: |