相关疑难解决方法(0)

Java JSON序列化 - 最佳实践

我需要为某些对象实现JSON序列化,并且在与泛型集合集成时遇到了问题.

所有可序列化的类都实现了这个接口(JSONObject来自这个库):

interface JSONSerializable{
    public JSONObject dump() throws JSONException //serializes object
    public void load(JSONObject obj) throws JSONException //deserializes object
}
Run Code Online (Sandbox Code Playgroud)

基于java.util.list的我的集合代码看起来或多或少像这样:

class AwesomeList<T extends JSONSerializable> implements JSONSerializable{
    private LinkedList<T> items = new LinkedList<T>();
    ...
    ...

    public JSONObject dump() throws JSONException {
        JSONObject result = new JSONObject();
        JSONArray a = new JSONArray();
        for(T i : items){
            a.put(i.dump());
        }
        result.put("items", a);
        return result;
    }

    public void load(JSONObject obj) throws JSONException{
        //here is my problem
    }
}
Run Code Online (Sandbox Code Playgroud)

我的问题是:当我从JSONObject加载AwesomeList时,我需要创建它的元素,但这是不可能的,因为java禁止我写

T newItem = …
Run Code Online (Sandbox Code Playgroud)

java json design-patterns

26
推荐指数
2
解决办法
13万
查看次数

标签 统计

design-patterns ×1

java ×1

json ×1