使用Newtonsoft.Json拼接或者组装Json

a为用匿名函数嵌套得到的json串 ;将a转为JObject用于下面的组装
var a = JsonConvert.SerializeObject(new { test1 = new string[] { "1", "2", "3" }, test2 = "qwew", test3 = 1234, test4 = new { children1 = false } });
var b = JObject.Parse(a);
Console.WriteLine(b.ToString());

结果:

{
  "test1": [
    "1",
    "2",
    "3"
  ],
  "test2": "qwew",
  "test3": 1234,
  "test4": {
    "children1": false
  }
}

 

如果是简单节点拼接如下
var level2 = new JObject();
level2["level3"] = "myValue";
var level1 = new JObject();
level1["level2"] = level2;
b["level1"] = level1;

结果:

{
  "test1": [
    "1",
    "2",
    "3"
  ],
  "test2": "qwew",
  "test3": 1234,
  "test4": {
    "children1": false
  },
  "level1": {
    "level2": {
      "level3": "myValue"
    }
  }
}

 

如果里面包含数组或者匿名函数:

var c = JToken.FromObject(new { testa = new string[] { "1", "2", "3" }, testb = "qwew", testc = 1234, testd = true });
b.Add("testnew", c);

结果:

{
  "test1": [
    "1",
    "2",
    "3"
  ],
  "test2": "qwew",
  "test3": 1234,
  "test4": {
    "children1": false
  },
  "testnew": {
    "testa": [
      "1",
      "2",
      "3"
    ],
    "testb": "qwew",
    "testc": 1234,
    "testd": true
  }
}

全部组装完成的Json

{
  "test1": [
    "1",
    "2",
    "3"
  ],
  "test2": "qwew",
  "test3": 1234,
  "test4": {
    "children1": false
  },
  "level1": {
    "level2": {
      "level3": "myValue"
    }
  },
  "testnew": {
    "testa": [
      "1",
      "2",
      "3"
    ],
    "testb": "qwew",
    "testc": 1234,
    "testd": true
  }
}

 

posted @ 2022-06-16 09:47  学net的胖子  阅读(307)  评论(0)    收藏  举报