首页 > 程序开发 > 软件开发 > C# >

C#中Json的几种添加方式

2017-09-27

C 中Json的几种添加方式。1 只能添加JProperty类的Object,可以一次性添加多个,Add方法添加只能针对于json中的第一层,第二层添加目前还无法得知,但是有其他方法进行弥补。2 当josn孩子添加时会变成JToken类型的一个集合,但是只有第一层是集合形式的JToken,第二层之后则

json的几种添加方式

1.只能添加JProperty类的Object,可以一次性添加多个

Add方法添加只能针对于json中的第一层,第二层添加目前还无法得知,但是有其他方法进行弥补

            string json = "{\"ReqCode\":{\"errcode\":{\"isSuccessFlag\":\"1\",\"Success\":\"0\"},\"23\":\"123123\"},\"EWQ\":{\"2\":\"2\"}}";
            string newJson = "{\"errcode\":{\"isSuccessFlag\":\"1\",\"Success\":\"0\"}}";
            var jsonObj = JObject.Parse(json);
            var newJsonObj = JObject.Parse(newJson);
            jsonObj.Add(new JProperty("req", new JObject(new JProperty("", JToken.Parse("\"asdasd\"")))));
            jsonObj.Add(newJsonObj.Properties());

2.当josn孩子添加时会变成JToken类型的一个集合,但是只有第一层是集合形式的JToken,第二层之后则是JToken,这也是json无法为第一层孩子添加第二层孩子的原因,因为类不是一个集合,AddAfterSelf是向自身之后添加一个JToken,AddBeforeSelf则反之,其中jsonObj.First.First也有这个方法,但根据如上所述,无法添加

            string json = "{\"ReqCode\":{\"errcode\":{\"isSuccessFlag\":\"1\",\"Success\":\"0\"},\"23\":\"123123\"},\"EWQ\":{\"2\":\"2\"}}";
            var jsonObj = JObject.Parse(json);
            jsonObj.First.First.AddAfterSelf(JToken.Parse("{\"isSuccessFlag\":\"1\",\"Success\":\"0\"}"));//错误 
            jsonObj.First.AddAfterSelf(JToken.Parse("{\"isSuccessFlag\":\"1\",\"Success\":\"0\"}"));//正确

3.下类方法是最直观的一种添加方式,但要注意的是当添加深度超过2以上时,需要保证前面所有json的参数名都存在json中,否则会报错,另外,该种方式还能对已有的参数进行覆盖,即如果jsonObj["ReqCode"]["er22rcode"]已经存在则会被如下操作覆盖

           string json = "{\"ReqCode\":{\"errcode\":{\"isSuccessFlag\":\"1\",\"Success\":\"0\"},\"23\":\"123123\"},\"EWQ\":{\"2\":\"2\"}}";           
           var jsonObj = JObject.Parse(json);
           jsonObj["ReqCode"]["er22rcode"] = JToken.Parse("{\"isSuccessFlag\":\"1\",\"Success\":\"0\"}");

4.Merge方法可以把两个不同的json拼接到深度相同的json中,也是可以当作新增的一种,比如:

            JObject Jobj1 = new JObject(new JProperty("1","2"));
            JObject Jobj2 = new JObject(new JProperty("1","2"));
            Jobj1.Merge(Jobj2);
相关文章
最新文章
热点推荐