linux 数组里面是json,在shell脚本中解析json数组

本文介绍了一种使用grep和perl命令从复杂JSON字符串中提取特定键值的方法,特别关注如何处理包含数组的对象。通过实例展示了如何解析包含多个条目的JSON数组,并逐个提取所需的键值对。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

参见英文答案 >

Parsing JSON with Unix tools                                    35个

我需要从json字符串打印键和值.我已经解析了一个简单的json字符串

{

"Name": "test1",

"CreateDate": "2016-08-30T10:52:52Z",

"Id": "testId1",

}

我的代码是这样的

q1=$(echo $x | grep -Po '"Name":.*?[^\\]",'| perl -pe 's/"Name": //; s/^"//; s/",$//');

q2=$(echo $x | grep -Po '"Id":.*?[^\\]",'| perl -pe 's/"Id": //; s/^"//; s/",$//');

echo $q1 "," $q2;

但是这段代码不适用于像这样的json字符串

x='{ "TestNames":

[{

"Name": "test1",

"CreateDate": "2016-08-30T10:52:52Z",

"Id": "testId1"

},

{

"Name": "test2",

"CreateDate": "2016-08-30T10:52:13Z",

"Id": "testId2"

}]

}';

我需要像这样打印

test1 , testId1

test2 , testId2

是否可以使用grep命令获取这样的数据?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值