web-dev-qa-db-ja.com

リスト<クラス名>のJSONArrayを作成する方法

というクラスがあります

class Student {
   String name;
   String age;
}

私はリストオブジェクトを返すメソッドがあります

public List<Student> getList(){

 List<Student> li =new ArrayList();
 ....

 li.add(new Student('aaa','12'));
 ... 

 return li;    
}

このリストを次のようにJSONArrayに変換する必要があります

[{"name":"sam","age":"12"},{"name":"sri","age":"5"}]

誰かがこれを手に入れるのを手伝ってくれる? Advanceeに感謝..

13
Navamani Samuel

Jettison jarファイルをダウンロードする必要はないと思います。

JSONArrayJSONObjectを使用すると、そのリストを@Juniad answerのようなJSONオブジェクトに簡単に変換できます

4
Mohan Kumar

Gson Libraryを使用すると、非常に簡単になります。

JSON文字列からオブジェクトのArrayListへ:

Type listType = 
     new TypeToken<ArrayList<Student>>(){}.getType();
ArrayList<Student> yourClassList = new Gson().fromJson(jsonArray, listType);

オブジェクトの配列リストからJsonへ:

ArrayList<Student> sampleList = new ArrayList<Student>();
String json = new Gson().toJson(sampleList);

Gsonライブラリは、JSONObjectおよびJSONArray実装よりも使用が簡単です。

20
Mandar Pandit

プロジェクトにjettison jarを含め、必要なクラスをインポートする必要があります。

JSONObject jObject = new JSONObject();
try
{
    JSONArray jArray = new JSONArray();
    for (Student student : sudentList)
    {
         JSONObject studentJSON = new JSONObject();
         studentJSON.put("name", student.getName());
         studentJSON.put("age", student.getAge());
         jArray.put(studentJSON);
    }
    jObject.put("StudentList", jArray);
} catch (JSONException jse) {
    jse.printStacktrace();
}
18
JHS

以下のようなJSONArrayを作成します。

JSONArray jsArray = new JSONArray(arrayList);

2
vitralyoz

Objectをjsonに直接マッピングする場合、またはjsonをオブジェクトに変換する場合は、GSONライブラリを使用できます。これにより、柔軟性と制御性が向上します。

リンクをダウンロード- http://code.google.com/p/google-gson/

チュートリアルリンク- http://www.mkyong.com/Java/how-do-convert-Java-object-to-from-json-format-gson-api/

1
kundan bora

gsonを試してください: Serializing-and-Deserializing-Generic-Types

1
Alex Stybaev

json-libは、おそらく探しているライブラリです。 somの使用例 here を見つけることができます。

1
W. Goeman