我有一些我希望反序列化的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”类型。
有什么想法吗?
干杯
答案 0 :(得分:2)
最简单的方法是,如果你可以修改你的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的反序列化,我相信。