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

C# 使用C在JSON中添加新属性,c#,json,c#-4.0,json.net,C#,Json,C# 4.0,Json.net,我正在接收来自外部服务的JSON响应。我没有将其反序列化为对象。我希望能够使用C向JSON添加新属性。您有两种选择,直接字符串操作或使用类似的库,您可以使用NuGet将其添加到项目中 如果它是字符串操作,而您不想解析,那么只能将其附加到图中的根对象。用额外属性替换最后一个大括号: using System; namespace WindowsFormsApp1 { static class Program { [STAThread] static void Main()

我正在接收来自外部服务的JSON响应。我没有将其反序列化为对象。我希望能够使用C向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" }

用这么少的信息很难给出一个正确的答案,但从我的头脑中我会这么做

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

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

string new_json = JsonConvert.SerializeObject(d);

你会得到{Property1:1,Property2:2}。

有人想说为什么他们认为这不是问题的答案吗?如果不进行解析,您还能做什么?如果你对正则表达式有创意,那么你就是在解析。我对这个问题给出了一个有用的答案。你们两个没有。我没有dv,但我不喜欢看到人们建议对这种事情进行字符串操作,我认为这是这里的一种普遍看法。你的第一段是正确的答案也许用代码会更好,但是如果OP想要一个积极的答案,他可以写一个不那么懒惰的问题。也许他们没有读过整件事,就把它录下来了;也许他们真的对此很愤怒。还有一些人,如果OP想帮助他做一些明显错误的事情,他们认为你不应该告诉他去做正确的事情。直接对分层数据进行字符串操作从来没有人这样做过good@EdPlunkett因此,对具有有效应用程序的信息的请求得-1分,回答这个问题的唯一答案是-3分,这让人振奋。你的JSON在哪里,我们可以看到格式?您想添加什么内容?还有,你为什么要做你想做的事情?也许有更好的选择。请通过具体说明你正在做什么和试图做什么来澄清你的问题,即a。你写道,我没有将其反序列化为对象。那么,你在干什么?到目前为止,您尝试了什么,它是如何不起作用的?如果有例外,你会得到什么?有关如何提问的一般指导原则,请参见。如果交换测试数据集,当他已经提出了两个单独的解决方案,并且产生相同的结果时,您如何说不清楚的可能重复?这是一个非常明确的要求。