我有一个数组
Array (
[username] => abc123456,
[password] => 9876543214,
[json_input] => [{
"AWB_NUMBER":"8518049",
"ORDER_NUMBER":"TF6E9NRC3J51145",
"PINCODE":"110001"
}]
)
我无法从 json_input
获取 PINCODE 的值我已经尝试对 json_input 进行解码,因为它是已编码
答案 0 :(得分:2)
好像您在json中有json。
假设您的json字符串是这样的:
$json_string = '{
"username": "alpha_bravo",
"password": "9ynyly89y8uvybiyg87yb",
"json_input": "[{
\"AWB_NUMBER\": \"8542322212\",
\"ORDER_NUMBER\": \"K98S2PUN7H5X125\",
\"PRODUCT\": \"cod\",
\"CONSIGNEE\": \"ABC\",
\"PINCODE\": \"123456\",
\"COLLECTABLE_VALUE\": \"1000\",
\"DECLARED_VALUE\": \"1000\",
\"ACTUAL_WEIGHT\": \"0.74\",
\"LENGTH\": \"12\",
\"BREADTH\": \"5\",
\"HEIGHT\": \"2\",
\"ADDITIONAL_INFORMATION\": {
\"INVOICE_NUMBER\": \"8GC5C190626151125\",
\"INVOICE_DATE\": \"Sun-Sep-2019\"
}
}]"
}';
您首先要做的是像这样对初始有效载荷进行解码:
$result = json_decode($json_string);
然后您要像这样再次解码json输入字符串:
$json_input = json_decode($result->json_input);
现在,您的 PINCODE 值可以通过以下方式访问:
echo $json_input[0]->PINCODE;
如果您期望json_input
数组中有多个元素,请对其进行迭代:
foreach ($json_input as $item) {
echo $item->PINCODE . "<br>";
}
答案 1 :(得分:1)
您的JSON字符串格式不正确,因为json_input中的双引号用法错误。
您可以尝试对其进行修复,也可以只使用正则表达式提取所需的值:
preg_match('/"PINCODE": "(\d+)"/',$inputJsonString, $matches);
echo $matches[1];