我从.sh文件中的 JSON格式中的以下命令获得响应(使用shell脚本):
**curl https://api.flipkart.net/sellers/skus/$col1/listings -H "Content-Type: application/json" -H "Authorization: Bearer $value"**
以下是我的回复:
{"listingId":"LSMSW","skuId":"M7489","fsn":"ACCCQD","attributeValues":{"actual_stock_count":"1","mrp":"199","seller_listing_state":"current","procurement_sla":"2","zonal_shipping_charge":"0","stock_count":"10","local_shipping_charge":"0","listing_status":"ACTIVE","max_order_quantity_allowed":"3","fulfilled_by":"seller","fk_release_date":"2016-08-29 10:00:08","selling_price":"529","inventory_count":"10","national_shipping_charge":"0","sku_id":"M7489"},"listingValidations":null}
现在我想在单独的变量中提取所有值以便重复使用它 像:
LISTINGID = '列出ID值'
SKUID = 'skuId value'
还有更多。
如果有人知道答案,请使用解释进行评论。
答案 0 :(得分:0)
以下是使用jq的解决方案。如果data.json
包含示例数据,则使用以下bash脚本
#!/bin/bash
jq -M -r '
.listingId
, .skuId
, .attributeValues.mrp
' data.json | \
while read -r listingId
read -r skuId
read -r mrp; do
echo "$listingId $skuId $mrp"
done
产生
LSMSW M7489 199
脚本中的jq
命令在单独的行上写出指定的属性,这些行由连续的read -r
命令读入bash变量。应该清楚如何扩展或修改它以满足您的要求 - 主要约束是jq
写的每一行应该有相应的read -r
。
答案 1 :(得分:-1)
我不知道任何bash json解析器。我会使用Python或Php并用其中一种语言解析Json字符串并从那里导出值。在Php中有putenv()方法。
祝你好运!编辑: 点击这里 Parsing JSON with Unix tools