Hou*_*lem 127 java android json
有没有办法将JSON数组转换为普通的Java Array for android ListView数据绑定?
Pen*_*m10 182
ArrayList<String> list = new ArrayList<String>();
JSONArray jsonArray = (JSONArray)jsonObject;
if (jsonArray != null) {
int len = jsonArray.length();
for (int i=0;i<len;i++){
list.add(jsonArray.get(i).toString());
}
}
Run Code Online (Sandbox Code Playgroud)
Nic*_*ick 56
如果您还没有JSONArray对象,请致电
JSONArray jsonArray = new JSONArray(jsonArrayString);
Run Code Online (Sandbox Code Playgroud)
然后简单地循环,构建自己的数组.此代码假定它是一个字符串数组,应该不难修改以适合您的特定数组结构.
List<String> list = new ArrayList<String>();
for (int i=0; i<jsonArray.length(); i++) {
list.add( jsonArray.getString(i) );
}
Run Code Online (Sandbox Code Playgroud)
Sta*_*Man 13
而不是使用捆绑式org.json
库,尝试使用Jackson或GSON,这是一个单行.与杰克逊,f.ex:
List<String> list = new ObjectMapper().readValue(json, List.class);
// Or for array:
String[] array = mapper.readValue(json, String[].class);
Run Code Online (Sandbox Code Playgroud)
小智 10
也许这只是一种解决方法(效率不高),但你可以这样做:
String[] resultingArray = yourJSONarray.join(",").split(",");
显然你可以,
用你喜欢的任何东西改变' '分隔符(我有一个JSONArray
电子邮件地址)
使用 Java Streams,您可以只使用IntStream
映射对象:
JSONArray array = new JSONArray(jsonString);
List<String> result = IntStream.range(0, array.length())
.mapToObj(array::get)
.map(Object::toString)
.collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
219645 次 |
最近记录: |