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

如何使用json.net将一个额外的属性添加到序列化的JSON字符串?

发布时间:2020-12-16 19:49:07 所属栏目:百科 来源:网络整理
导读:我在我的MVC 4程序中使用Json.net. 我有一个类Item的对象项. 我做到了 string j = JsonConvert.SerializeObject(item); 现在我想添加一个额外的属性,如“feeClass”:“A”到j. 如何使用Json.net来实现? 你有几个选择. @Manvik建议的最简单的方法是简单地向
我在我的MVC 4程序中使用Json.net.

我有一个类Item的对象项.

我做到了
string j = JsonConvert.SerializeObject(item);

现在我想添加一个额外的属性,如“feeClass”:“A”到j.

如何使用Json.net来实现?

你有几个选择.

@Manvik建议的最简单的方法是简单地向你的类添加另一个属性,并在序列化之前设置它的值.

如果你不想这样做,那么最简单的方法是将对象加载到JObject中,追加新的属性值,然后从中写出JSON.这是一个简单的例子:

class Item
{
    public int ID { get; set; }
    public string Name { get; set; }
}

class Program
{
    static void Main(string[] args)
    {
        Item item = new Item { ID = 1234,Name = "FooBar" };
        JObject jo = JObject.FromObject(item);
        jo.Add("feeClass","A");
        string json = jo.ToString();
        Console.WriteLine(json);
    }
}

以上是上面的输出:

{
  "ID": 1234,"Name": "FooBar","feeClass": "A"
}

另一种可能性是为您的Item类创建一个自定义的JsonConverter,并在序列化过程中使用它. JsonConverter允许您完全控制在序列化过程中写入的内容.您可以添加属性,禁止属性,更改属性名称,甚至可以写出不同的结构.对于这种特殊情况,我认为这可能是过度的,但这是另一个选择.

(编辑:李大同)

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

    推荐文章
      热点阅读