You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用JSON字符串拆分MySQL列数据并解决代码赋值问题

PHP解析MySQL中带转义的JSON字段解决方案

核心问题

从MySQL取出的字段字符串带有转义符\,且缺少JSON必需的外层{},导致无法直接解析提取字段值。

具体实现代码

步骤1:清理并格式化JSON字符串

// 从数据库查询得到的原始数据
$rawDbData = "\"acc\":\"0\",\"alarm\":\"02\",\"batl\":\"6\",\"bats\":\"1\",\"cellid\":\"0\",\"defense\":\"1\",\"gpslev\":\"15\",\"gsmlev\":\"3\",\"lac\":\"0\",\"mcc\":\"0\"";

// 去除转义符
$unescapedData = stripslashes($rawDbData);
// 补全JSON结构,添加外层大括号
$jsonString = "{" . $unescapedData . "}";

步骤2:解析JSON并提取字段

// 解析为关联数组(第二个参数为true)
$parsedData = json_decode($jsonString, true);

// 验证解析结果
if (json_last_error() !== JSON_ERROR_NONE) {
    echo "解析失败:" . json_last_error_msg();
    exit;
}

// 提取所需字段
$acc = $parsedData['acc'];
$alarmCode = $parsedData['alarm'];
$gpsLevel = $parsedData['gpslev'];

// 示例输出
echo "加速度状态:{$acc},告警码:{$alarmCode},GPS信号等级:{$gpsLevel}";

关键细节

  • stripslashes():专门处理带转义符的字符串,移除多余的\。
  • 补全{}:原始存储的内容是JSON对象的内部键值对部分,必须包裹大括号才能被识别为合法JSON。
  • 解析选项:json_decode第二个参数设为true返回关联数组,操作更直观;若设为false(默认)则返回对象,需用$parsedData->acc的方式访问。

内容的提问来源于stack exchange,提问作者James Wright

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 17:20:58