0

json-simple (および他の追加ライブラリなし) を使用して aJSONArrayを に変換することは可能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使用して要素を取得し、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 に答える