如何使用jq从JSON响应中获取decimal/number类型的值,该响应不包含&引用;

如何使用jq从JSON响应中获取decimal/number类型的值,该响应不包含&引用;,json,linux,shell,sh,jq,Json,Linux,Shell,Sh,Jq,我不熟悉shell脚本,需要一些帮助。 我试图使用jq从api响应中获取值,并检查其正确性 下面是一个示例,展示了响应的样子 { "data" : { "transactionType" : "Sales", "transactionSubType" : "DomesticSale", "Items" : [ { "itemID" : "2", "itemType" : "Good",

我不熟悉shell脚本,需要一些帮助。 我试图使用jq从api响应中获取值,并检查其正确性

下面是一个示例,展示了响应的样子

    {
      "data" : {
        "transactionType" : "Sales",
        "transactionSubType" : "DomesticSale",
        "Items" : [ {
          "itemID" : "2",
          "itemType" : "Good",
          "amount" : 5.0,
          "tax" : 1.0        
        } ]
     }
}
我能够获得transactionType或transactionsubtype的值,甚至可以获得下面给出的ItemID值等

jq '.data.transactionType'    
jq '.data.Items[0].itemID' 
用于事务处理类型和项目id

但是当涉及到数值类型的值时,也就是说,没有引号,我就得不到任何值。 我对数值类型使用了类似的语法,如下所示

jq '.data.Items[0].amount'
jq '.data.Items[0].tax'

请帮忙

您的jq调用很好,但是示例数据缺少最后一个右括号(“}”),因此可能您没有正确地输入jq

如果您想知道为什么没有看到错误消息,几乎可以肯定,这是因为JQ1.5在处理不完整的JSON方面不是很好。这一问题后来在“大师级”上得到了解决。在当前版本中,您会看到如下内容:

parse error: Unfinished JSON term at EOF at line 15, column 0

您的jq调用很好,但是示例数据缺少最后一个右括号(“}”),因此可能您没有正确地输入jq

如果您想知道为什么没有看到错误消息,几乎可以肯定,这是因为JQ1.5在处理不完整的JSON方面不是很好。这一问题后来在“大师级”上得到了解决。在当前版本中,您会看到如下内容:

parse error: Unfinished JSON term at EOF at line 15, column 0

您的输入json缺少尾部
}
您的输入json缺少尾部
}
很抱歉。。。我只是分享了实际文件的一小部分,并对其进行了修改,使其结构与我使用的实际响应类似。共享原始数据是被禁止的,因此必须做出这样的更改。但是我使用的文件不是不完整或错误的。。我还在这里添加了大括号。我们已经使用正确的JSON测试了您的jq查询,因此如果您遇到问题,您必须提供更多信息,例如,您使用的jq版本和平台。一个完整且令人信服的打字脚本可能也会有所帮助。我正在ubuntu 16.04上使用JQ1.4。我已经检查过使用JQ1.4的示例数据没有问题。在Q中,请添加显示类型脚本的部分,例如:cat myfile.json;jq。。。。myfile.json对不起。。。我只是分享了实际文件的一小部分,并对其进行了修改,使其结构与我使用的实际响应类似。共享原始数据是被禁止的,因此必须做出这样的更改。但是我使用的文件不是不完整或错误的。。我还在这里添加了大括号。我们已经使用正确的JSON测试了您的jq查询,因此如果您遇到问题,您必须提供更多信息,例如,您使用的jq版本和平台。一个完整且令人信服的打字脚本可能也会有所帮助。我正在ubuntu 16.04上使用JQ1.4。我已经检查过使用JQ1.4的示例数据没有问题。在Q中,请添加显示类型脚本的部分,例如:cat myfile.json;jq。。。。myfile.json