如何使用动态 JSonPath 查询在 JObject 中设置值?



以下代码返回预期的 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);
}                

相关内容

  • 没有找到相关文章

最新更新