加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-16 18:40:09 所属栏目:百科 来源:网络整理
导读:我有一些 JSON我想要反序列化,但我想将其中一个属性视为字符串,而不是对象. 作为一个例子,JSON看起来像这样: { "name":"Frank","sex":"male","address": { "street":"nowhere st","foo":"bar" }} 我想将它反序列化为此对象 – 将地址对象视为字符串文字: p
我有一些 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的反序列化,我相信.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读