求助:解析JSON中字段10的特殊序列化格式数据
解析PHP序列化格式数据的方法
你看到的这个字符串是**PHP序列化(PHP Serialization)**格式,是PHP用于将变量转为可存储/传输字符串的标准格式,格式标识含义:
a:2::代表包含2个元素的关联数组s:8:"latitude":代表长度为8的字符串类型键名,内容是latitude- 分号
;用于分隔键值对和数组元素
下面是几种主流语言的解析方案:
PHP 解析方式
直接使用PHP内置的unserialize()函数即可完成解析:
// 先提取JSON中字段10的内容 $serializedData = 'a:2:{s:8:"latitude";s:17:"55.50636887209855";s:9:"longitude";s:18:"-4.576417238098154";}'; $parsedData = unserialize($serializedData); // 获取纬度和经度 $latitude = $parsedData['latitude']; $longitude = $parsedData['longitude'];
Python 解析方式
借助第三方库phpserialize实现解析,先通过pip安装:pip install phpserialize
import phpserialize # 注意传入字节类型数据 serializedData = b'a:2:{s:8:"latitude";s:17:"55.50636887209855";s:9:"longitude";s:18:"-4.576417238098154";}' parsedData = phpserialize.loads(serializedData, decode_strings=True) latitude = parsedData[b'latitude'].decode() longitude = parsedData[b'longitude'].decode()
JavaScript/Node.js 解析方式
使用php-unserialize包,先通过npm安装:npm install php-unserialize
const unserialize = require('php-unserialize'); const serializedData = 'a:2:{s:8:"latitude";s:17:"55.50636887209855";s:9:"longitude";s:18:"-4.576417238098154";}'; const parsedData = unserialize(serializedData); const latitude = parsedData.latitude; const longitude = parsedData.longitude;
内容的提问来源于stack exchange,提问作者PJ99
相关产品推荐
相关产品推荐

