我是Json.net的新手,所以我不确定我是否以正确/最好的方式做到这一点,但我无法解决这个问题:
我正在创建输出JObject:
JObject joOutput = new JObject();
现在,我有一个值路径列表:
a.b.c = 5
a.b.d = 7
a.c.q = 8
所以我想使用该层次结构以明显的方式填充joOutput对象。
我似乎找不到按路径设置值的方法,如果它不存在,显然会创建路径。
我试图在路径上分割路径并创建节点,但我甚至无法做到这一点,因为api非常混乱。
你能指出我正确的方向吗?谢谢!
答案 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>;
里面的每个元素也可以是相同的字典。