小编Rog*_*eus的帖子

Gson序列化POJO的ArrayList的麻烦

我一直在计划使用simpleXML来满足我的序列化需求,但我想我会尝试使用JSON来学习新的东西.

这是我用来尝试使用Gson 1.7.1序列化测试POJO的ArrayList的代码.

注意:我删除了字符串"s"的读/写器以简化代码.

package test;

import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

import com.google.gson.Gson;

public class TestGsonSerialDeserialList {
    public static void main(String[] args) throws IOException{
        Gson gson = new Gson();

        //Make Serial 
        String s;
        List<TestObject> list = Collections.synchronizedList(new ArrayList<TestObject>() );
        list.add(new TestObject());
        list.add(new TestObject());

        s = gson.toJson(list, ArrayList.class);
        System.out.println(s);

        //Eat Serial
        List<TestObject> list2 = Collections.synchronizedList(gson.fromJson(s, ArrayList.class) );
        System.out.println(list2.get(0) );
        System.out.println(list2.get(1) );
    }
}
Run Code Online (Sandbox Code Playgroud)

这是我得到的输出:

[{"objectID":1,"i1":12345,"name":"abcdefg","s":["a","b","c"]},{"objectID":2,"i1":12345,"name":"abcdefg","s":["a","b","c"]}]
java.lang.Object@5c74c3aa
java.lang.Object@75d9fd51
Run Code Online (Sandbox Code Playgroud)

对我的新手来说,这看起来是正确的.只有DeSerialized对象列表包含基本对象,而不是我序列化的TestObject.任何人都可以向我解释一下,如果有的话,我可以做些什么来使这项工作?

编辑:

更正测试:感谢ColinD

package test;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException; …
Run Code Online (Sandbox Code Playgroud)

java serialization json arraylist gson

69
推荐指数
1
解决办法
8万
查看次数

标签 统计

arraylist ×1

gson ×1

java ×1

json ×1

serialization ×1