0

我想创建一个通用类来创建我的 jsonObject。是否可以创建一个可以创建不同类型对象的类,例如

{"chunkSize":10,"filters"
[{"field":"segmentOwners.id","operator":"EQUAL","value":"11578","valueType":"java.lang.Integer"},
{"field":"language","operator":"EQUAL","value":"FR","valueType":"java.lang.String"},
{"field":"customerId","operator":"EQUAL","value":"77","valueType":"java.lang.Integer"}]
,"orderBy":[{"field":"creationTime","order":"DESC"}],"page":0}

或者只是一个简单的请求:

{login:"mylogin",pwd:"mypwd"}

我试过类似的东西:

    @Override
    protected JSONObject doInBackground(String... params) {
        byte[] result = null;
        Iterator iter = mData.entrySet().iterator();

       JSONObject jsonObj = new JSONObject();

        Iterator it = mData.entrySet().iterator();
        while (it.hasNext()) {
            Map.Entry pairs = (Map.Entry)it.next();
            try {
                jsonObj.put((String) pairs.getKey(), (String) pairs.getValue());
            } catch (JSONException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            it.remove(); // avoids a ConcurrentModificationException
        }

但我不确定这是同一种哈希图(字符串,jsonObjet ...?)

4

2 回答 2

1

如果JSONObject要从 JSON 字符串创建实例,只需执行以下操作:

JSONObject jsonObj = new JSONObject("<your json string>");
于 2012-08-27T13:44:15.853 回答
0

我将创建通用容器类(即DataContainer),无论它拥有什么数据(即setFromJson()getData()),它都会公开统一的 API。然后为每个数据结构(即DataLoginDataSomething)创建单独的对象。然后,当您从远程源获取 json 数据时,您可以创建DataLogin对象并将其交给您DataContainer(或将 json 传递给 DataContainer,以便它可以检测到DataLogin应该使用并自己创建它,但这需要一些可能不是最佳方法的逻辑)。然后可以将预期对您的 json 数据起作用的所有方法交给 DataContainer 对象和方法可以getType()对其执行(当然您需要自己设置类型),这将返回存储的数据,然后getData()让数据自己工作在。

于 2012-08-27T13:45:48.003 回答