使用C#在JSON中添加新属性

时间:2017-05-22 23:39:40

标签: c# json c#-4.0 json.net

我正在从外部服务收到JSON响应。我没有将它反序列化为一个对象。我希望能够使用C#向JSON添加新属性。

2 个答案:

答案 0 :(得分:2)

很难用如此少的信息给出正确的答案,但从我的头脑中说出我的所作所为

string json = "{\"Property1\":1}";

dynamic d = JsonConvert.DeserializeObject(json);
d.Property2 = 2;

string new_json = JsonConvert.SerializeObject(d);

你得到{"Property1":1, "Property2":2}

答案 1 :(得分:-2)

您有两种选择,直接字符串操作或使用像http://www.newtonsoft.com/json这样的库,您可以使用NuGet将其添加到项目中。

如果它是字符串操作并且您不想解析那么只有在图中附加到根对象才是实用的。用你的额外属性替换最后一个花括号:

using System;

namespace WindowsFormsApp1
{
  static class Program
  {
    [STAThread]
    static void Main()
    {
      string s = "{ \"A\": \"val-A\" }";
      Console.WriteLine(s);
      s = s.Substring(0, s.Length - 1) + ", \"your-prop-name\": \"the-prop-value\" }";
      Console.WriteLine(s);
    }
  }
}

输出:

{ "A": "val-A" }
{ "A": "val-A" , "your-prop-name": "the-prop-value" }