首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Native Messaging主机上从标准输入解析JSON?

问如何在Native Messaging主机上从标准输入解析JSON?
EN

Stack Overflow用户
提问于 2018-01-22 23:32:47
回答 1查看 344关注 0票数 0

使用How do I use a shell-script as Chrome Native Messaging host application上的代码作为模板,并给出文件file.json,该文件包含

代码语言:javascript
复制
{"text":"abc"}

遵循Iterate over json with jq和jq documentation上的代码

代码语言:javascript
复制
$ cat file.json | jq --raw-output '.text'

输出

代码语言:javascript
复制
abc

我不确定如何在此Answer中合并模式

代码语言:javascript
复制
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)"')

添加到前一个答案的模板中,以便使用jq从循环内的JSON捕获单个属性"text" (abc),以便能够将该文本传递给另一个系统调用,然后将消息printf发送到客户端。

我们想要实现的是

代码语言:javascript
复制
json=$(<bash program> <captured JSON property>)
message='{"message": "'$json'"}'

其中{"text":"abc"}从客户端(Chromium应用程序)发送到本地消息传递主机。

如何在前一个Answer的代码中使用jq来将JSON属性作为变量获取?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-01-23 05:01:40

假设file.json包含如上所述的JSON,我相信您需要的是:

代码语言:javascript
复制
json=$(jq '{message: .}' file.json)

如果您然后使用echo "$json",结果将是:

代码语言:javascript
复制
{
  "message": {
    "text": "abc"
  }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48385086

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档