在PHP中如何读取下述JSON代码数据的每一个字段值
PHP解析指定JSON数据的方法
PHP内置json_decode()函数即可完成JSON解析,你可以按需选择解析为关联数组或者对象两种格式来读取字段。
完整实现步骤
1. 预处理转义内容
你给出的JSON内容里的"是HTML转义后的双引号,需要先调用html_entity_decode()还原为正常的JSON字符串后再解析。
2. 解析并读取字段代码示例
<?php // 拿到原始转义后的JSON字符串 $rawJson = '{ "data": { "orderId": "10946506", "status": "FAILED", "mobile": "9795681183", "amount": "100.00", "transId": "", "error_code": "119", "service": "Airtel", "bal": "", "creditUsed": "0", "resText": "Ip 185.27.134.67 Not Configured", "gstMode": "P2P", "tdsAmount": "0" } }'; // 还原HTML转义,得到标准JSON字符串 $jsonStr = html_entity_decode($rawJson); // 解析为关联数组(第二个参数传true,读取更便捷) $result = json_decode($jsonStr, true); // 读取所有字段示例 $data = $result['data']; $orderId = $data['orderId']; // 取值为10946506 $status = $data['status']; // 取值为FAILED $mobile = $data['mobile']; // 取值为9795681183 $amount = $data['amount']; // 取值为100.00 $transId = $data['transId']; // 取值为空 $errorCode = $data['error_code']; // 取值为119 $service = $data['service']; // 取值为Airtel $bal = $data['bal']; // 取值为空 $creditUsed = $data['creditUsed']; // 取值为0 $resText = $data['resText']; // 取值为Ip 185.27.134.67 Not Configured $gstMode = $data['gstMode']; // 取值为P2P $tdsAmount = $data['tdsAmount']; // 取值为0 ?>
解析错误校验建议
解析后可以通过json_last_error()判断解析是否成功,避免JSON格式错误导致后续读取报错:
if (json_last_error() !== JSON_ERROR_NONE) { echo "JSON解析失败:" . json_last_error_msg(); }
内容的提问来源于stack exchange,提问作者Ajay Srivastava
相关产品推荐
相关产品推荐

