【发布时间】:2017-08-15 14:13:30
【问题描述】:
有一个像这样的大 json
"envConfig": {
"environmentName": {
"versions": [
{
"name": "version1",
"value": "Dev"
},
{
"name": "version2",
"host": "qa"
}
],
"userRoles": [
{
"name": "Roles",
"entry": [
{
"name": "employees",
"value": "rwx"
},
{
"name": "customers",
"value": "rx"
}
]
}
]
}
},
我想将 JSON 属性从“environmentName”更改为“prod”。以下是我期待的输出
"envConfig": {
"prod": {
"versions": [
...
],
"userRoles": [
...
]
}
}
使用 sed 命令尝试如下
sed "s/\('environmentName':\)/\1\"prod\"\,/g" version.json
用 jq 尝试如下,但不起作用
cat version.json | jq ' with_entries(.value |= {"prod" : .environmentName} ) '
此处有任何帮助,可以将 json 的属性/键替换为所需的值
【问题讨论】:
-
您的
JSON语法不正确,请从jsonformatter.curiousconcept.com 修复
标签: bash sed command-line jq