Java JSON序列化-最佳实践

发布于 2021-01-31 17:30:48

我需要为某些对象实现JSON序列化,并且在与通用集合进行集成时遇到了一个问题。

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

interface JSONSerializable{
    public JSONObject dump() throws JSONException //serializes object
    public void load(JSONObject obj) throws JSONException //deserializes object
}

我基于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
    }
}

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

T newItem = new T();
newItem.load(obj);

我应该如何修改此任务的方法?

关注者
0
被浏览
74
1 个回答
  • 面试哥
    面试哥 2021-01-31
    为面试而生,有面试问题,就找面试哥。

    您是否绑定到该库?Google
    Gson
    非常受欢迎。我自己没有将其与Generics一起使用,但他们的首页说Gson认为对Generics的支持非常重要。



推荐阅读
知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看