如何从 Native Messaging 主机上的标准输入解析 JSON?
How to parse JSON from stdin at Native Messaging host?
使用 How do I use a shell-script as Chrome Native Messaging host application 处的代码作为模板,并给出包含
的文件 file.json
{"text":"abc"}
遵循 and the jq documentation
处的代码
$ cat file.json | jq --raw-output '.text'
产出
abc
我不确定如何在此处合并模式
while read -r id name date; do
echo "Do whatever with ${id} ${name} ${date}"
done< <(api-producing-json | jq --raw-output '.newList[] | "\(.id) \(.name) \(.create.date)"')
进入前一个答案的模板,目的是使用 [=20 从循环中的 JSON
捕获单个 属性 "text"
(abc
) =] 能够将该文本传递给另一个系统调用,然后 printf
将消息传递给客户端。
我们正在努力实现的是
json=$(<bash program> <captured JSON property>)
message='{"message": "'$json'"}'
其中 {"text":"abc"}
从客户端(Chromium 应用程序)发送到本机消息主机。
如何在前Answer处的代码中使用jq
获取JSON
属性作为变量?
假设 file.json 包含指示的 JSON,我相信您只需要:
json=$(jq '{message: .}' file.json)
如果你然后 echo "$json"
,结果将是:
{
"message": {
"text": "abc"
}
}
使用 How do I use a shell-script as Chrome Native Messaging host application 处的代码作为模板,并给出包含
的文件file.json
{"text":"abc"}
遵循
$ cat file.json | jq --raw-output '.text'
产出
abc
我不确定如何在此处合并模式
while read -r id name date; do
echo "Do whatever with ${id} ${name} ${date}"
done< <(api-producing-json | jq --raw-output '.newList[] | "\(.id) \(.name) \(.create.date)"')
进入前一个答案的模板,目的是使用 [=20 从循环中的 JSON
捕获单个 属性 "text"
(abc
) =] 能够将该文本传递给另一个系统调用,然后 printf
将消息传递给客户端。
我们正在努力实现的是
json=$(<bash program> <captured JSON property>)
message='{"message": "'$json'"}'
其中 {"text":"abc"}
从客户端(Chromium 应用程序)发送到本机消息主机。
如何在前Answer处的代码中使用jq
获取JSON
属性作为变量?
假设 file.json 包含指示的 JSON,我相信您只需要:
json=$(jq '{message: .}' file.json)
如果你然后 echo "$json"
,结果将是:
{
"message": {
"text": "abc"
}
}