我正在尝试执行以下请求有效负载(JSON),并返回响应,如下所示:
CURL命令:
curl --header "Content-Type: application/json" --header "hostname:kindle.qa.amazon.com" \
--request POST \
--data '{
"country":"BE",
"cardNumberPayment":"9423-8234-1882-3412",
"cardType" : "Visa",
"expirationMonth": "12",
"expirationYear": "2020"
}' \
http://amazon.qa.payment.com/v1/Services/restservices/credit
响应:
{"cardType":"Visa","cardNumber":"9423823418823409","cvv":"***"}
{"cardType":"Visa","cardNumber":"9423823418823411","cvv":"***"}
{"cardType":"Visa","cardNumber":"9423823418823410","cvv":"***"}
我只想获取curl命令的cardNumber,而不是打印整个JSON(cardType和cvv除外)。
预期产量:
9423823418823409
9423823418823411
9423823418823410
我只想获取一张卡号列表即可打印为输出。我该如何实现?
答案 0 :(得分:0)
您将必须使用JSON解析器来提取信息。您可以使用jq来做到这一点(jq是轻量级的命令行JSON处理器。)
此article详细介绍了如何实现。他们也有一个tutorial here。
例如
curl 'http://amazon.qa.payment.com/v1/Services/restservices/credit' | jq '.[0]'
将提取数组的第一个元素(假设它是一个数组-您的代码使它看起来像一系列对象)。
然后按以下方式获取卡号
jq '.[0] | .cardNumber'
此SO post too中还有其他几个示例。