Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Json JQ-解析数据_Json_Bash_Shell_Jq - Fatal编程技术网

Json JQ-解析数据

Json JQ-解析数据,json,bash,shell,jq,Json,Bash,Shell,Jq,我的shell脚本中有类似的内容: "{ \"ratio\": 32.56351, \"name\": \"Classes\" } { \"ratio\": 9.505888, \"name\": \"Conditionals\" } { \"ratio\": 36.30363, \"name\": \"Files\" } { \"ratio\": 13.349417, \"name\": \"Lines\" } { \"ratio\": 19.908062, \"name\": \"Meth

我的shell脚本中有类似的内容:

 "{ \"ratio\": 32.56351, \"name\": \"Classes\" } { \"ratio\": 9.505888, \"name\": \"Conditionals\" } { \"ratio\": 36.30363, \"name\": \"Files\" } { \"ratio\": 13.349417, \"name\": \"Lines\" } { \"ratio\": 19.908062, \"name\": \"Methods\" } { \"ratio\": 43.75, \"name\": \"Packages\" }"
我需要从中提取类似的内容:

Classes : 32.56351
Conditionals : 9.505888

依此类推所有其他值,并将其存储在某个数组或变量中。我正在考虑使用jqjson解析器:

我认为您的
json
无效。我删除了edge双引号,并取消了其余的双引号,如:

{ "ratio": 32.56351, "name": "Classes" } { "ratio": 9.505888, "name": "Conditionals" } { "ratio": 36.30363, "name": "File" } { "ratio": 13.349417, "name": "Lines" } { "ratio": 19.908062, "name": "Methods" } { "ratio": 43.75, "name": "Packages" }
使用它,您可以尝试使用字符串插值,如:

jq -r '"\(.name): \(.ratio)"' infile
这将产生:

Classes: 32.56351
Conditionals: 9.505888
File: 36.30363
Lines: 13.349417
Methods: 19.908062
Packages: 43.75