我有一些想要反序列化的 JSON,但我想将其中一个属性视为字符串,而不是对象。
例如,JSON 如下所示:
{
"name":"Frank",
"sex":"male",
"address": {
"street":"nowhere st",
"foo":"bar"
}
}
我想将它反序列化为这个对象 - 将地址对象视为字符串文字:
public class Person
{
public string name;
public string sex;
public string address;
}
我试过从字面上将它反序列化到这个对象,但得到了错误:
无法将 JSON 对象反序列化为“System.String”类型。
有任何想法吗?
干杯
最佳答案
最简单的方法是,如果您可以修改您的 Person 类并为您的 Address 属性创建一个 Address 类,例如:
public class Person
{
public string name;
public string sex;
public Address address;
}
public class Address
{
public string street;
public string foo;
}
这将使 JSON.NET 为您反序列化地址对象。
如果你不能修改你的类 - 我相信解决方案需要手动处理 Person 的反序列化。
关于.net - JSON.Net - 如何将 JSON 反序列化为对象但将属性视为字符串而不是 JSON?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9952302/