如何在Java中迭代JsonArray(不是java 8)

时间:2016-02-02 18:31:14

标签: java json loops parsing javabeans

我想在这个Json对象中迭代一个数组:

{
  "id": "2234",
  "Messages": [
    {
      "MessageId": 321231239,
      "Text_message": "my text message",
      "date": 1444666348
    },
    {
      "MessageId": 3217437239,
      "Text_message": "my text message 2",
      "date": 1444666348
    }
  ]
}

在我的代码中我有:

JsonArray messagesJson = jsonObject.getJsonArray("Messages");

我的相关导入是:

import javax.json.Json;
import javax.json.JsonArray;
import javax.json.JsonObject;
import javax.json.JsonReader;

现在我想迭代这个数组并为我的bean提取字段。 但我不想在索引中使用for循环。我想使用foreach类型的循环。我正在使用Java 7。 我想要的是更像Scala的做法:

messagesJson.map { json => 
    MyBean(
        (json \ "MessageId").getOrElse(""),
        (json \ "text_message").getOrElse(""),
        (json \ "date").getOrElse("")
    )
}

1 个答案:

答案 0 :(得分:2)

正如documentation所说,JsonArray扩展了List<JsonValue>,因此您可以简单地遍历JsonValue

for(JsonValue value : yourJsonArray){
....
}