我正在寻找一个JSON文档的根元素。看起来使用JsonPointer和JsonPath都不可能,因为我尝试查找这样的表达式失败了。如果有任何提示,我将不胜感激。TIA。
示例文档:
{
"MESSAGE1_ROOT_INPUT": {
"CTRL_SEG": "test"
}
}
下面使用gson 2.9.0:
$.*~
产生:
{"CTRL_SEG": "test"}
而JSONPath Online产生以下结果:
[
"MESSAGE1_ROOT_INPUT"
]
尝试使用JsonPath/JsonPointer表达式获取文本“MESSAGE1_ROOT_INPUT”。请注意,最好使用传统的方法(字符串化json文本上的子字符串或正则表达式)提取此文本。
背景:我们正在构建一个API服务,它接受具有不同根的JSON文档。例如,MESSAGE2_ROOT_INPUT,MESSAGE3_ROOT_INPUT等。在此基础上,消息的路由将进一步发生。
支持/使用的语言:Java/GSON库/正则表达式
1条答案
按热度按时间rdlzhqv91#
Gson本身并不支持JSONPath或JSON指针,但是,您可以使用
JsonReader
非常高效地获得第一个属性的名称:但是,有两件事需要记住:
Reader
的一些数据;为了进一步处理数据,您必须缓冲数据以便再次读取(您也可以先将JSON存储在String
中,然后将StringReader
传递给JsonReader
)