如何将List <class>放入JSONObject然后读取该对象?

Gra*_*min 16 java json class list

我有一个List<class>我想转换成一个json对象,然后遍历json对象的数据.

如果这只是一个list<String>我可以做的事情:

JSONObject obj = new JSONObject();
List<String> sList = new ArrayList<String>();
sList.add("val1");
sList.add("val2");

obj.put("list", sList);
Run Code Online (Sandbox Code Playgroud)

然后我可以遍历列表,如:

JSONArray jArray = obj.getJSONArray("list");
for(int ii=0; ii < jArray.size(); ii++
  System.out.println(jArray.getString(ii));
Run Code Online (Sandbox Code Playgroud)

使用该类的问题是我需要访问我的每个类元素中的数据list<class>,我不知道如何编码/遍历它到JSON.任何帮助将不胜感激.

Rob*_*ola 17

打电话getJSONObject()而不是getString().这将为您提供数组中JSON对象的句柄,然后您可以从该处获取该对象的属性.

例如,要从具有和的List<SomeClass>地方获取属性"value" :SomeClassString getValue()setValue(String value)

JSONObject obj = new JSONObject();
List<SomeClass> sList = new ArrayList<SomeClass>();

SomeClass obj1 = new SomeClass();
obj1.setValue("val1");
sList.add(obj1);

SomeClass obj2 = new SomeClass();
obj2.setValue("val2");
sList.add(obj2);

obj.put("list", sList);

JSONArray jArray = obj.getJSONArray("list");
for(int ii=0; ii < jArray.length(); ii++)
  System.out.println(jArray.getJSONObject(ii).getString("value"));
Run Code Online (Sandbox Code Playgroud)