【Java】Java反序列化PHP格式

工作中遇到需要和PHP对接,此时需要处理反序列化PHP格式的数据

a:4:{i:0;a:2:{s:11:"province";s:8:"0016";s:7:"img";s:49:"20150117105023_kk-1.jpg";}
i:1;a:2:{s:11:"province";s:8:"0017";s:7:"img";s:49:"20150117105025_kk-1.jpg";}}

 

1.导入第三方工具类库,项目地址:http://www.phprpc.org/zh_CN/docs/

<dependency>
    <groupId>org.sction</groupId>
    <artifactId>phprpc</artifactId>
    <version>3.0.2</version>
</dependency>

 

使用时,需要知道被序列化的对象是单个对象还是被以array的形式序列化的

若是单个对象,直接可以反序列化

public static Test getUnserialize(String content) throws Exception {
    PHPSerializer p = new PHPSerializer();
    if (StringUtils.isEmpty(content))
        return null;
    Test t =  (Test) p.unserialize(content.getBytes(),Test.class);
    return t;
}

 若是array需要借助Cast类,转换成java对应的对象

 

public static List<Test> getUnserializeList(String content) throws Exception {
    List<Test> list = new ArrayList<Test>();
    PHPSerializer p = new PHPSerializer();
    if (StringUtils.isEmpty(content))
        return list;
    AssocArray array = (AssocArray) p.unserialize(content.getBytes());
    for (int i = 0; i < array.size(); i++) {
        Test t = (Test) Cast.cast(array.get(i), Test.class);
        list.add(t);
    }
    return list;
}

 

 

引用地址:https://www.cnblogs.com/ikuman/p/4539129.html

posted @ 2022-03-24 09:36  独孤无绝  阅读(302)  评论(0编辑  收藏  举报