jqでjsonファイルを文字列として出力したい。

対応

@json オプションを使用する

message.json
{
  "id": "xyz",
  "type": "TYPE",
  "body": "あいうえお。\nかきくけこ。",
  "nest":{
    "key": "サシスセソ。\nタチツテト。",
    "array": [
      "なにぬねの\tはっひふっへほ~"
    ]
  }
}
cmd
C:\Users\szk\github\szk302\work>cat message.json | jq "@json"
結果
C:\Users\szk\github\szk302\work>cat message.json | jq "@json"
"{\"id\":\"xyz\",\"type\":\"TYPE\",\"body\":\"あいうえお。\\nかきくけこ。\",\"nest\":{\"key\":\"サシ
スセソ。\\nタチツテト。\",\"array\":[\"なにぬねの\\tはっひふっへほ~\"]}}"

元に戻す場合はfromjsonを使用する

cmd
cat message.json | jq "@json" | jq "fromjson"
結果
C:\Users\szk\github\szk302\work>cat message.json | jq "@json" | jq "fromjson"
{
  "id": "xyz",
  "type": "TYPE",
  "body": "あいうえお。\nかきくけこ。",
  "nest": {
    "key": "サシスセソ。\nタチツテト。",
    "array": [
      "なにぬねの\tはっひふっへほ~"
    ]
  }
}