JSON.Net-如何将JSON反序列化为对象,但将属性视为字符串而不是JSON



我有一些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的反序列化,我相信。

相关内容

  • 没有找到相关文章

最新更新