0

是否可以使用json-simple(并且没有其他附加库)将 a 转换为JSONArraya ArrayList<MyObject>

我无法在文档中或 SO 上找到代码示例。

这就是我目前的做法(相当复杂):

for(Iterator iterator = jsonRootObject.keySet().iterator(); iterator.hasNext();) {
    String key = (String) iterator.next();
    JSONObject jsonEpg = (JSONObject) jsonRootObject.get(key);
    JSONArray jsonEpgTags = (JSONArray) jsonEpg.get("tags");

    //Iterate tags
    for(int i = 0; i < jsonEpgTags.size(); i++) {
        JSONObject jsonEpgTag = (JSONObject) jsonEpgTags.get(i);
        final String tagId = (String) jsonEpgTag.get("id");
        String name = (String) jsonEpgTag.get("name");

        EpgJsonTagValue jsonTagValue = new EpgJsonTagValue();
        jsonTagValue.tagId = tagId;
        jsonTagValue.name = name;

        result.add(jsonTagValue);
    }
}

我的“POJO”:

public class EpgJsonTagValue {
    private String tagId;
    private String name;

    public String getTagId() {
        return tagId;
    }

    public void setTagId(String id) {
        this.tagId = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String toString() {
        return "TagId: " + tagId
                + ", Name: " + name;
    }
}
4

3 回答 3

1

join使用 a 的元素separator String,然后将split它们获取一个数组,然后将该数组传递给该数组,该数组Arrays.asList将传递给ArrayList.

public static ArrayList<Object> JSONArray2ArrayList(JSONArray input, Class c) {
    return new ArrayList<c>(Arrays.asList(input.join(separator).split(separator)));
}
于 2015-11-23T13:07:53.540 回答
0

您不必迭代 JsonArray 对象来构建列表。它已经实现了 List 接口,所以只需键入它,如下所示

List<UserObject> result = (List<UserObject>) jsonArray;

请尝试让我知道。

于 2015-11-23T13:07:21.433 回答
0

这肯定会奏效!!

List<EpgJsonTagValue> epgJsonTagValueList = (List<EpgJsonTagValue>)jsonEpgTags ;

或者,如果您想要一个 ArrayList,那么这将起作用:

ArrayList<EpgJsonTagValue> epgJsonTagValueList = (ArrayList<EpgJsonTagValue>)jsonEpgTags ;
于 2015-11-23T13:46:03.663 回答