以下代码返回预期的 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";
我找到了解决方案。 呸。 必须创建一个对象(下面的值对象(来获取 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);
}