我有一个字符串格式的json,例如
{"hello":"Sam"}
我想在根级别添加一个简单的嵌套对象,例如
{"hello":"Sam", "level1":{"level2":{"level3":"myValue"}}}
如何使用Newtonsoft.json以编程方式执行此操作,听起来非常简单,但我被卡住了。
我试过这个,但不知道该怎么写" level2节点?":
var s = @"{""Hello"":""Sam""}";
var jobj = JObject.Parse(s);
jobj.Add("level1", "level2 node?");
var json2 = jobj.ToString();
我可能应该使用下面的Add重载方法,它采用" JToken": https://www.newtonsoft.com/json/help/html/M_Newtonsoft_Json_Linq_JObject_Add.htm
但我不知道这个通用的JToken是什么,或者如何创建它的实例。
如果应该完成“最里面的”,“最里面的第一个”或“#34”。
答案 0 :(得分:2)
使用无参数构造函数创建新的VirtualProtect
。您可以像填充父项的属性一样填充新的子对象:
malloc
或者您可以使用collection initializer syntax,这可能是因为free
实施JObject
并且方法var json = @"{""hello"":""Sam""}";
var jobj = JObject.Parse(json);
var level2 = new JObject();
level2["level3"] = "myValue";
var level1 = new JObject();
level1["level2"] = level2;
jobj["level1"] = level1;
:
JObject
您无需明确创建System.IEnumerable
。它有Add(String, JToken)
个转换运算符,用于很长的值类型列表。这些课写得很好;他们倾向于“做你的意思”。但是,如果您真的想要,可以调用静态方法var json = @"{""hello"":""Sam""}";
var jobj = JObject.Parse(json);
jobj["level1"] = new JObject
{
{ "level2", new JObject
{
{ "level3", "myValue" }
}
}
};
。通过右键单击Visual Studio中的JSON.NET类并从上下文菜单中选择“转到定义”,您可以学到很多东西。从字面上看,我学到了关于JSON.NET这个领域的一切,我在过去的十分钟里通过“Go To Definition”和试错来了解到。