如何使用PHP从指定JSON响应数据中提取MessageId字段的值
实现步骤
- 第一步:提取纯JSON内容,返回结果外层包裹了
<p>和</p>标签,需要先剥离这部分标签得到原始JSON字符串 - 第二步:使用PHP的
json_decode()函数解析JSON字符串,可根据使用习惯转为关联数组或对象格式 - 第三步:按照JSON的嵌套层级读取MessageId字段的对应值
完整示例代码
<?php // 接口返回的原始响应内容 $originResponse = '<p>{"ServiceClass":{"MessageId":"1633236883931745","Status":"0","StatusText":"success","ErrorCode":"0","ErrorText":{},"SMSCount":"1","CurrentCredit":"49.24"}}</p>'; // 剥离外层p标签得到纯JSON,也可以用str_replace(['<p>', '</p>'], '', $originResponse) 实现更精准的替换 $pureJson = strip_tags($originResponse); // 解析JSON,第二个参数传true返回关联数组,不传则返回对象 $parseResult = json_decode($pureJson, true); // 兼容解析异常的判断逻辑 if (json_last_error() !== JSON_ERROR_NONE) { die("JSON解析失败:" . json_last_error_msg()); } // 按层级取值 $messageId = $parseResult['ServiceClass']['MessageId']; // 输出验证,结果为1633236883931745 echo $messageId; ?>
如果习惯用对象格式操作,取值方式可改为:
$parseResult = json_decode($pureJson); $messageId = $parseResult->ServiceClass->MessageId;
内容的提问来源于stack exchange,提问作者Rasel Ahmed Rex
相关产品推荐
相关产品推荐

