相关疑难解决方法(0)

使用Unix工具解析JSON

我正在尝试解析从curl请求返回的JSON,如下所示:

curl 'http://twitter.com/users/username.json' |
    sed -e 's/[{}]/''/g' | 
    awk -v k="text" '{n=split($0,a,","); for (i=1; i<=n; i++) print a[i]}'
Run Code Online (Sandbox Code Playgroud)

以上将JSON拆分为字段,例如:

% ...
"geo_enabled":false
"friends_count":245
"profile_text_color":"000000"
"status":"in_reply_to_screen_name":null
"source":"web"
"truncated":false
"text":"My status"
"favorited":false
% ...
Run Code Online (Sandbox Code Playgroud)

如何打印特定字段(用-v k=text?表示)?

bash parsing json

794
推荐指数
25
解决办法
87万
查看次数

JSON的XSLT等价物

是否有JSON 的XSLT等价物?允许我对XSON进行转换的事情,比如XSLT对XML做的转换.

xslt json language-comparisons equivalent

393
推荐指数
12
解决办法
12万
查看次数

在shell脚本中读取json数据

在shell中我有一个要求,其中我必须阅读JSON响应,其格式如下:

 { "Messages": [ { "Body": "172.16.1.42|/home/480/1234/5-12-2013/1234.toSort", "ReceiptHandle": "uUk89DYFzt1VAHtMW2iz0VSiDcGHY+H6WtTgcTSgBiFbpFUg5lythf+wQdWluzCoBziie8BiS2GFQVoRjQQfOx3R5jUASxDz7SmoCI5bNPJkWqU8ola+OYBIYNuCP1fYweKl1BOFUF+o2g7xLSIEkrdvLDAhYvHzfPb4QNgOSuN1JGG1GcZehvW3Q/9jq3vjYVIFz3Ho7blCUuWYhGFrpsBn5HWoRYE5VF5Bxc/zO6dPT0n4wRAd3hUEqF3WWeTMlWyTJp1KoMyX7Z8IXH4hKURGjdBQ0PwlSDF2cBYkBUA=", "MD5OfBody": "53e90dc3fa8afa3452c671080569642e", "MessageId": "e93e9238-f9f8-4bf4-bf5b-9a0cae8a0ebc" } ] }
Run Code Online (Sandbox Code Playgroud)

在这里,我只关注"Body"属性值.我做了一些不成功的尝试,如:

 jsawk -a 'return this.Body' 
Run Code Online (Sandbox Code Playgroud)

要么

 awk -v k="Body" '{n=split($0,a,","); for (i=1; i<=n; i++) print a[i]} 
Run Code Online (Sandbox Code Playgroud)

但这还不够.谁能帮我这个?

bash shell json

50
推荐指数
3
解决办法
17万
查看次数

JSON配置为bash变量

可能重复:
Unix命令行JSON解析器?

如果我有一个JSON配置文件和一个PHP脚本将配置文件压缩成这样的东西

database_dbname=sensei
database_password=somerandompassword
memcached_host=localhost
....
Run Code Online (Sandbox Code Playgroud)

我可以将它传递给我的bash脚本并将上面的每个条目作为变量吗?

./bin/flatten_config.php config.json | ./bin/my_bash_script.sh
Run Code Online (Sandbox Code Playgroud)

所以在我的bash脚本中我可以使用配置文件中的值

mysql -D${database_dbname} -p${database_password} ...
Run Code Online (Sandbox Code Playgroud)

bash configuration json

5
推荐指数
1
解决办法
5080
查看次数

在shell中逐列解析Json数据

当我运行命令时,我得到这样的响应

{

    "status": "available",
    "managed": true,
    "name":vdisk7,
    "support":{
    "status": "supported"
    },
    "storage_pool": "pfm9253_pfm9254_new",
    "id": "ff10abad"-2bf-4ef3-9038-9ae7f18ea77c",
    "size":100
},
Run Code Online (Sandbox Code Playgroud)

和数百种这种类型的列表或词典我想要一个做这种事情的命令

if name = "something", 
    get the id
Run Code Online (Sandbox Code Playgroud)

任何可以帮助我学习这类命令的链接都将受到高度赞赏

我试过了

awk'{if($ 2 =="something")打印$ 0;}'

但我认为响应是在Json中,因此colum明智的awk格式化不起作用.

此外,它只是我需要运行的一个命令,所以我不想使用任何外部库.

bash shell awk

5
推荐指数
1
解决办法
7056
查看次数