JQ для сравнения JSON в Баш - PullRequest
0 голосов
/ 25 сентября 2018

У меня есть 2 json-объекта, поступающих из остальных API.Я хочу сравнить, если они один и тот же объект.objectA:

{
  "type": {
    "S": "equal"
  },
  "preFilter": {
    "BOOL": true
  }
}

objectB:

{
  "preFilter": {
    "BOOL": true
  },
  "type": {
    "S": "equal"
  }
}

Они одинаковы, но md5sum увидит их как разные.Я попытался вставить их в 2 разных файла и сравнить файлы, используя предложенное здесь : , но я хотел бы знать, возможно ли использовать jq на лету для сравнения переменных.

IПытался изменить

--argfile a a.json

на

--arg a $a

(будучи $ aa строкой json) без удачи.Есть идеи, как подходить к строкам, а не к файлам?

1 Ответ

0 голосов
/ 25 сентября 2018

Вероятно, проще всего использовать параметр командной строки --argjson, например,

jq -n --argjson a "$a" --argjson b "$b" '$a == $b'

Конечно, есть альтернативы, например, использование jq -s ...

...