我如何通过bash脚本解析json文件?

时间:2017-10-24 02:16:27

标签: json bash parsing

我想获取faceRectangle并将其放入另一个文本文件中 像这样

SET" faceRectangle" "" top":114"

SET" faceRectangle" """:212"

这样,相应标题下的所有值都被正确格式化并复制到上面的另一个文件中 我想在一个bash文件中执行此操作

[
  {
"faceRectangle": {
  "top": 114,
  "left": 212,
  "width": 65,
  "height": 65
},
"scores": {
  "anger": 1.0570484E-08,
  "contempt": 1.52679547E-09,
  "disgust": 1.60232943E-07,
  "fear": 6.00660363E-12,
  "happiness": 0.9999998,
  "neutral": 9.449728E-09,
  "sadness": 1.23025981E-08,
  "surprise": 9.91396E-10
}
 }

我该怎么做?

更新:这是我到目前为止所做的:

#!/bin/bash

faceR=($(jq -r '.[0].faceRectangle' emotion.json))
scores=($(jq -r '.[0].scores' emotion.json))

echo " SET "faceRectangle" "${faceR[@]}" " >> data.txt

cat data.txt | redis-cli --pipe

我一直收到错误"请求中的不平衡报价" 我该如何解决?

1 个答案:

答案 0 :(得分:0)

这输出了你想要的东西:

#!/usr/bin/env bash

top=($(jq -r ".[0].faceRectangle.top" emotion.json))
left=($(jq -r ".[0].faceRectangle.left" emotion.json))

echo "SET \"faceRectangle\" \"top\": ${top}\""
echo "SET \"faceRectangle\" \"left\": ${left}\""