JSON路径读取

JSON路径读取,json,jsonpath,Json,Jsonpath,我有这样的问题: 在这个文件中,我有多行类似这样的json代码 {"id":1,"my_struct":{"other_id":1,"text":"HelloWorld0"}} {"id":2,"my_struct":{"other_id":12,"text":"HelloWorld1"}} {"id":3,"my_struct":{"other_id":123,"text":"HelloWorld2"}} 我尝试使用JSON路径查询获取数据: &.id 我得到的是空行。 但如果我对

我有这样的问题:
在这个文件中,我有多行类似这样的json代码

{"id":1,"my_struct":{"other_id":1,"text":"HelloWorld0"}}
{"id":2,"my_struct":{"other_id":12,"text":"HelloWorld1"}}
{"id":3,"my_struct":{"other_id":123,"text":"HelloWorld2"}}
我尝试使用JSON路径查询获取数据:

&.id
我得到的是空行。
但如果我对文件使用相同的JSON路径查询,只使用一行

{"id":1,"my_struct":{"other_id":1,"text":HelloWorld0}}
我得到了正确的结果:1

我做错了什么?如何获取所有id?

根据您的示例,它是不正确的JSON格式。您可以在此在线工具中实际验证JSON或生成JSON:

有关JsonPath的更多详细信息,请阅读此处的示例:

要使JSON有效,应采用以下格式:

[
  {"id":1,"my_struct":{"other_id":1,"text": "HelloWorld0 Value"}},
  {"id":2,"my_struct":{"other_id":12,"text": "HelloWorld1 Value"}},
  {"id":3,"my_struct":{"other_id":123,"text": "HelloWorld2 Value"}}
]

要回答您关于如何获取所有id的问题,将使用
“$.[*].id”

该文件不是有效的JSON。您必须指定要使用哪一行。是否可以在所有JSON行上进行迭代?呃,“JSON行”到底是什么意思?如果每一行都是有效的JSON,那么是的,可以使用您最喜欢的工具对这些行进行迭代。是的。每一行都是有效的JSON。您能告诉我如何迭代文件中的每一行吗?我可以告诉您如何使用某些工具进行迭代。我不能告诉你如何使用你正在使用的任何东西,因为你忘了告诉我们它是什么。该死。你是对的。当我用[]包围这一切并添加逗号“$.*].id”时,一切都开始起作用。是否有可能在不重写文件(不添加[,]和,)的情况下读取文件?@UNIm95简短的回答是肯定的,这是可能的。您只需要从文件中每行读取JSON对象,并通过将字符串放入数组中,然后进行转换,以编程方式创建正确的格式。在JSON结构中添加括号和逗号很重要,因为它是JSON的组成部分。