如何读取JSON数组并将它们存储在stringbuilder中以显示它?

时间:2015-10-01 08:57:44

标签: java android arrays json

我有一个类似

的json文件
  

{“44451”:[“67”,“188”,“188E”,“188R”,“982E”,“301”]}

如何读取“44451”中的字符串并将其显示在android studio的StringBuilder中?

帮助将不胜感激。谢谢。

3 个答案:

答案 0 :(得分:1)

JSONObject json = new JSONObject(jsonString);
JSONArray jArray = json.getJSONArray("44451");


StringBuilder sb;
for(int i=0; i<jArray.length(); i++){
sb.append(jArray.getJSONObject(i).toString());
}

答案 1 :(得分:1)

不要真正理解StringBuilder方面,但是如果你想从JSON中读取整个文本,那么你可以这样做。

整个文本是一个对象因为它被{ }包围,所以您有一个键44451分配给数组["67",...]

要阅读此内容,您将首先阅读该对象,然后阅读该数组的内容。

JSONObject object = new JSONObject('');
JSONArray array = object.getJSONArray("44451");
for (int i = 0; i < array.length(); i++) { 
 String value = array[i];
 // other opetations as desired..
}

答案 2 :(得分:0)

我建议使用FasterXML Jackson库,因为您可以将JSON解析为任意用户定义的类型。你可以像这样添加一个gradle依赖

compile 'com.fasterxml.jackson.core:jackson-databind:2.6.2'
compile 'com.fasterxml.jackson.core:jackson-core:2.6.2'

然后你可以这样解析你的JSON。

String json = "{ \"44451\":[\"67\",\"188\",\"188E\",\"188R\",\"982E\",\"301\"]}";

ObjectMapper mapper = new ObjectMapper();
Map<String, List<String>> values = mapper.readValue(json, new TypeReference<Map<String, List<String>>>() {
});

StringBuilder str = new StringBuilder();
for (String value : values.get("44451")) {
    // do whatever you want 
}