当前位置:  开发笔记 > 编程语言 > 正文

使用NewtonSoft将JSON对象反序列化为.Net对象

如何解决《使用NewtonSoft将JSON对象反序列化为.Net对象》经验,为你挑选了1个好方法。

我有一个json对象,我想反序列化到它的.Net类型而不用它.

我想我在doc中的某处读到你可以将一个属性传递给json,告诉反序列化器它可以尝试强制转换的.Net对象类型.

我找不到我读到的地方.

我想避免使用

var myNewObject = JsonConvert.DeserializeObject(json);

得到这样的东西

MyClass myNewObject = JsonConvert.DeserializeObject(json);

我从HttpRequest获取了我的json对象,并希望从这个嵌套对象中实例化相应的类.目前,对已知项目的反序列化工作正常,但需要更灵活的东西,而无需从解析方法管理所有已知的Object.



1> croxy..:

您可以像这样在json字符串中保存对象类型.

您必须设置转换器的设置

public static readonly JsonSerializerSettings Settings = new JsonSerializerSettings
{
   TypeNameHandling = TypeNameHandling.Objects
};

如何使用给定的设置进行序列化:

var json = JsonConvert.SerializeObject(data, Settings);

这是你的json字符串的样子:

{
   "$type":"YourNamespaceOfTheClass",
   "YourPropertyInTheClass":valueOfProperty
}

如何使用给定的设置反序列化:

var object = JsonConvert.DeserializeObject(json, Settings);

现在,您的json字符串不仅包含序列化对象,还包含序列化对象的类型.因此,在反序列化json字符串时,您不必担心正确的类型.

推荐阅读
mobiledu2402852357
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有