以下代码返回预期的json。
代码:
JToken fakeTarget = wrapper.Context.SelectToken("$.data");
返回
{
"mom": "",
"dad": "",
"sibling": "",
"cousin": "",
"calculated": ""
}
下面的代码行完成了我需要做的事情,以下警告除外:
wrapper.Context["data"]["calculated"] = "500";
我不需要动态地提供类似的路径,而是需要动态地提供诸如此类的路径,但是语法不正确:
var path = "$.data.calculated";
wrapper.Context.SelectToken(path).Value = "500";
答案 0 :(得分:0)
我找到了解决方案。 uck必须创建一个对象(下面的valueObject)来获取JToken来替换现有对象。至少有效。请注意,JToken.IsNull()引发未实现的异常,因此目标!= null。真好。
var valueObject = JObject.FromObject(new
{
value = "500"
});
JToken target = wrapper.Context.SelectToken(path);
if (target != null)
{
JToken replacement = valueObject.SelectToken("value");
target.Replace(replacement);
}