Json.Net,如何通过路径动态创建json?

时间:2017-05-19 17:59:00

标签: c#

我是Json.net的新手,所以我不确定我是否以正确/最好的方式做到这一点,但我无法解决这个问题:

我正在创建输出JObject:

JObject joOutput = new JObject();

现在,我有一个值路径列表:

a.b.c = 5
a.b.d = 7
a.c.q = 8

所以我想使用该层次结构以明显的方式填充joOutput对象。

我似乎找不到按路径设置值的方法,如果它不存在,显然会创建路径。

我试图在路径上分割路径并创建节点,但我甚至无法做到这一点,因为api非常混乱。

你能指出我正确的方向吗?

谢谢!

2 个答案:

答案 0 :(得分:2)

string a = @"{""b"": {""c"":5, ""d"":7}, ""c"": {""q"":8}}";
JObject joObject = JObject.Parse(a);

更新:

var B = new JObject();
B.Add("c", 5);
B.Add("d", 7);

var C = new JObject();
C.Add("q", 8);


JObject A = new JObject();
A.Add("b", B);
A.Add("c", C);

UPDATE2,完整性,这是弗拉基米尔的方法:

var B = new Dictionary<string, int> { ["c"] = 5, ["d"] = 7 };
var C = new Dictionary<string, int> { ["q"] = 5, ["8"] = 7 };
var A = new Dictionary<string, object> { ["b"] = B, ["c"] = C };

var AA = JObject.FromObject(A);

答案 1 :(得分:-1)

尝试使用包含字符串键和对象值的Dictionary来解决您的问题。

Dictionary<string,object> myJsonObj = new Dictionary<string, object>;

里面的每个元素也可以是相同的字典。