我正在使用
我注意到
然而,似乎不能将此输出用于反向操作,也就是说,一旦你知道了路径,就不能使用它来访问一个节点的值。
例如,假设我的JSON如下所示:
System.Text.Json
包来处理和操作JSON,我有一个特定场景,如果我能提供节点值的访问路径,就可以重复使用某个方法。我注意到
JsonNode
类有一个GetPath()
方法,如你所料,它返回目标节点的路径。然而,似乎不能将此输出用于反向操作,也就是说,一旦你知道了路径,就不能使用它来访问一个节点的值。
例如,假设我的JSON如下所示:
{
"cakes": {
"cheese": "cake"
}
}
调用node["cakes"]["cheese"]
将返回"cake"
。
而调用node["cakes"]["cheese"].GetPath()
将返回"$.cakes.cheese"
,即该"cake"
值的路径。
然而,调用node["$.cakes.cheese"]
只会返回null
,而不是预期的"cake"
。
我是否使用不当?还是JsonNode
类根本就不打算这样工作,如果是这样,那么GetPath
方法的意义是什么?
System.Text.Json
确实缺少这个功能。该功能请求在此处(3+年仍未解决)。 - Jeroen Mostert