将包含json对象数组的字符串转换为Java中的数组

时间:2018-09-10 12:01:03

标签: java android arrays json

我有一个变量,它是JSON字符串,此JSON是对象数组:

String actions = "[{'title': 'BBC', 'url': 'https://www.bbc.co.uk'}, {'title': 'GOOGLE', 'url': 'https://www.google.com'}]"

我需要将其转换为可以在我的android应用程序中使用的东西,以便可以迭代的数组或对象。我该怎么办?

3 个答案:

答案 0 :(得分:0)

您应该为此使用org.json.JSONArray

String actions = "[{'title': 'BBC', 'url': 'https://www.bbc.co.uk'}, {'title': 'GOOGLE', 'url': 'https://www.google.com'}]" 

JSONArray actionArray = new JSONArray(actions)
for(int x = 0; x < actionArray.length; x++ ){
    JSONAobject obj = actionArray.getJSONObject(x);
    String title = obj.optString("title");
    //Other code
}

答案 1 :(得分:0)

使用Gson

String actions = "[{'title': 'BBC', 'url': 'https://www.bbc.co.uk'}, {'title': 'GOOGLE', 'url': 'https://www.google.com'}]";

List list = new Gson().fromJson(actions, List.class);

如果您的JSON具有已知结构,则可以将其映射到类,例如:

class Website {
        String title;
        String url;
}


Type type = new TypeToken<List<Website>>() {}.getType();
List<Website> list = new Gson().fromJson(actions, type);

答案 2 :(得分:-1)

在Java中,您可以为此使用json库: https://mvnrepository.com/artifact/org.json/json