我正在尝试将json字符串/数组解析为对象列表。 jsonString是我尝试在jsonArray中创建的原始字符串,如下所示:
List<Drink> drinks = new ArrayList<Drink>();
JSONArray jsonArr = new JSONArray(jsonString);
字符串是:
[{"alcohol":"Vodka","date":"2014-04-25T22:04:51","units":3.0},
{"alcohol":"Beer","date":"2014-04-25T21:44:26","units":3.0}]
我真的不知道如何从这里开始,
任何帮助都会很棒:)
答案 0 :(得分:1)
您可以遍历JSONArray
并添加到您的饮品List
,如下所示:
for (int i=0; i<jsonArr.length(); i++) {
JSONObject jsonDrink = jsonArr.getJSONObject(i);
String alcohol = jsonDrink.getString("alcohol");
String date = jsonDrink.getString("date");
double units = jsonDrink.getDouble("units");
Drink drink = new Drink();
// initialize drink object values here or in constructor (don't know what this class has)
drinks.add(drink);
}
答案 1 :(得分:1)
遍历JSONArray
,检索每个JSONObject
并从对象的属性中调用相应的Drink
构造函数:
List<Drink> drinks = new ArrayList<Drink>();
JSONArray jsonArr = new JSONArray(jsonString);
int len = jsonArr.length();
for (int i = 0; i < len; ++i) {
JSONObject obj = jsonArr.getJSONObject(i);
String alcohol = obj.getString("alcohol");
String date = obj.getString("date");
double units = obj.getDouble("units");
Drink drink = new Drink(alcohol, date, units);
drinks.add(drink);
}
当然,在构建Drink
对象之前,您可能需要解析日期或进行其他数据转换。
答案 2 :(得分:0)
JSONArray 有 toList() 方法。见 https://stleary.github.io/JSON-java/org/json/JSONArray.html#toList-- (我假设你使用 JSONArray 形式 org.json) 你的代码应该是这样的
import org.json.JSONArray;
List<Drink> drinks = new JSONArray(jsonString).toList();