Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/261.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用Newtonsoft.JSON添加JSON属性_C#_Json - Fatal编程技术网

C# 使用Newtonsoft.JSON添加JSON属性

C# 使用Newtonsoft.JSON添加JSON属性,c#,json,C#,Json,我有一些JSON看起来像这样: { "staticInfo": { "browser": "Chrome", "browserVersion": "54.0", "packageNumber": "XXX", "user": "user" } , "request": { "server": "E", "steps": { "Step1": {

我有一些JSON看起来像这样:

{
    "staticInfo": {
        "browser": "Chrome",
        "browserVersion": "54.0",
        "packageNumber": "XXX",
        "user": "user"
    }
    ,
    "request": {
        "server": "E",
        "steps": {
            "Step1": {
                "start": "11/30/2016 20:11:26.494",
                "end": "11/30/2016 20:11:26.510"
            }
            ,
            "Step2": {
                "start": 1480536689237,
                "end": 1480536689357
            }
            ,
            "Step3": {
                "start": "Wed, 11/30/2016 20:12:25.229 GMT",
                "end": "Wed, 11/30/2016 20:12:25.246 GMT"
            }            
        }
        ,
        "url": "SomeURL",
        "trackingId": "99809eb5-c36b-4199-83d6-847c7b0489d1:0"
    }   
}
我正在尝试添加Step4,因此最终的JSON如下所示

{
    "staticInfo": {
        "browser": "Chrome",
        "browserVersion": "54.0",
        "packageNumber": "XXX",
        "user": "user"
    }
    ,
    "request": {
        "server": "E",
        "steps": {
            "Step1": {
                "start": "11/30/2016 20:11:26.494",
                "end": "11/30/2016 20:11:26.510"
            }
            ,
            "Step2": {
                "start": 1480536689237,
                "end": 1480536689357
            }
            ,
            "Step3": {
                "start": "Wed, 11/30/2016 20:12:25.229 GMT",
                "end": "Wed, 11/30/2016 20:12:25.246 GMT"
            }
            ,
            "Step4": {
                "start": "SomeData",
                "end": "SomeData"
            }

        }
        ,
        "url": "SomeURL",
        "trackingId": "99809eb5-c36b-4199-83d6-847c7b0489d1:0"
    }    
}

因此,我基本上是在尝试添加一个
步骤4
。我正试图使用
Newtonsoft.Json
来实现这一点。我知道我可以使用基本的字符串解析来完成,但为了保持一致性,我想使用
Newtonsoft.Json

由于
JObject
还实现了
IDictionary
,因此您可以执行以下操作:

var jObj = JObject.Parse(json);
jObj["request"]["steps"]["Step4"] = JToken.FromObject(new { start = "some", end = "somedata" });
var newjson = jObj.ToString( Newtonsoft.Json.Formatting.Indented);
或者使用
动态
关键字

dynamic jObj = JObject.Parse(json);
jObj.request.steps.Step4 = JToken.FromObject(new { start = "some", end = "somedata" });
var newjson = jObj.ToString( Newtonsoft.Json.Formatting.Indented);

请阅读。关键短语:“搜索、研究”和“解释……任何阻碍您自己解决问题的困难”。很好的观察,坦率地说,我不知道如何实现
IDictionary