当前位置: 首页 > 知识库问答 >
问题:

如何停止JSON路径返回对象

康文昌
2023-03-14

我对JSONPath的工作有意见。我有两个非常相似的json对象,我正试图从中获取值。

本质上,对象大致看起来像这样:

Object1: {Company: {Organisation: {Official Name: "Name"}}
jsonpath1: Company..Organisation..Official Name
Object2: {Company: {Organisation:"Name"}}
jsonpath2: Company..Organisation

我的问题是我需要运行这两条路径。对于Object2,这不会引起任何问题,因为第一个jsonpath不返回任何内容。

但是,对于object1,jsonpath 1返回所需的值。但是,对于该记录,jsonpath2还返回值Object。

有没有办法阻止这种事情发生?我需要两个json路径。它们都返回了公司的名称,但不幸的是,数据结构发生了变化——因此出现了问题

共有1个答案

漆雕奇逸
2023-03-14

如果你对使用jq持开放态度,那么编写一个检索公司名称的查询的解决方案非常简单:

.Company.Organisation | if type == "string" then . else ."Official Name" end

例如,如果是公司。json包含以下行:

{"Company": {"Organisation": {"Official Name": "Name1"}}}
{"Company": {"Organisation": "Name2"}}

然后是运行的结果

jq '.Company.Organisation | if type == "string" then . else ."Official Name" end' company.json

将是:

"Name1"
"Name2"

(如果希望名称不带外部引号,可以使用-r命令行选项运行jq。)

 类似资料:
  • 问题内容: 如何从Java Servlet返回JSON对象。 以前,当使用servlet执行AJAX时,我返回了一个字符串。是否有需要使用的JSON对象类型,或者你只是返回了一个看起来像JSON对象的String,例如 问题答案: 我完全按照你的建议去做(返回a )。 不过,你可能会考虑将MIME类型设置为指示你正在返回JSON(根据其他stackoverflow文章,其为“ applicatio

  • 问题内容: 假设我有一个像这样的循环: 快速提问:是否会停止循环本身的执行? 问题答案: 是的,停止执行并退出功能。always**会立即退出其功能,如果它位于for循环中,则不会进一步执行。 它很容易为您自己验证: **注意:请参阅有关的特例的其他答案,以及有关forEach循环如何具有自己的功能范围的答案,不会脱离包含函数。

  • 在我的程序中,我同时启动一个线程和进度对话框。我想在按下“后退”后停止线程。但程序只会停止我的对话框。我尝试了以下代码: 结果是,我只能在没有任何对话框仍在工作时停止线程,如何“选择”后退操作,或者如何在对话框关闭的同时停止线程?

  • 问题内容: 我想使用经典的ASP脚本返回JSON对象(这是AJAX请求的一部分)。 如果我仅以以下形式发送回复: 这将工作,还是我实际上需要JSON库? 编辑: 我正在尝试在http://www.devbridge.com/projects/autocomplete/jquery/#howto上获取自动完成插件。 javascript: ASP: 自动完成功能不起作用。如果我使用像查找这样的本地查

  • 我是一个新的android工作室,所以很抱歉,如果这是一个非常愚蠢的问题,但我不能找到答案在任何地方网上。非常感谢任何帮助! 我已经建立了一个小的应用程序,有两个屏幕:一个主屏幕,一个屏幕二。主屏幕只是导航到屏幕二。从另一个屏幕,你可以播放/暂停/停止一首特定的歌曲,或者回到主屏幕。 我遇到的问题是当我导航到屏幕二时,当我按下“后退”按钮返回主屏幕时,我无法弄清楚如何将“停止”方法添加到这个按钮上

  • 问题内容: 我有一个问题。 使用ajax,我使用以下命令发送了格式正确的JSON对象: 但是,Opera和Chrome尽管接收到相同的对象,但它们以不正确的顺序打印出该对象,似乎它们都按ID号执行排序,而不是单独留下! 有没有办法停止这种自动排序? 编辑,发现它是按索引号排序后,我在想最好的方法可能是不使用索引来存储object_id,而是存储要用于排序对象的ID号。 但是,我仍然想知道是否有一种