在数组之前使用2个对象解析JSON

时间:2017-07-30 17:02:42

标签: java android json

我目前正在尝试在我的Android应用程序中解析一些JSON,但我一直收到错误说"没有用户的价值"

这是我正在使用的当前代码:

Parent root = null;

try {
    root = FXMLLoader.load(getClass().getClassLoader().getResource("overview.fxml"));

    Stage stage = new Stage();
    Scene scene = new Scene(root);

    stage.setTitle("FXML Welcome");
    stage.setScene(scene);
    stage.setResizable(false);
    stage.show();
} catch (IOException e) {
    e.printStackTrace();
}

这是我的JSON:

JSONObject parentObject = new JSONObject(finalJSON);

            JSONObject childObject = new JSONObject(String.valueOf(parentObject));

            JSONArray parentArray = childObject.getJSONArray("users");

            JSONObject finalObject = parentArray.getJSONObject(0);

            String userName = finalObject.getString("username");

            String profileLink = finalObject.getString("profileimage");

            Log.d("JSON", String.valueOf(finalObject));

            return profileimage+ " - " + profileLink ;

提前致谢!

3 个答案:

答案 0 :(得分:3)

您忘记了reply级别。

这是你应该做的。

JSONObject parentObject = new JSONObject(finalJSON);


JSONArray userArray = parentObject
                .getJSONObject("reply")
                .getJSONArray("users");

JSONObject finalObject = userArray.getJSONObject(0);

答案 1 :(得分:0)

你不能为对象内的对象获取新对象。

你必须为对象内的parse对象执行此操作。

JSONObject object1 =  new JSONObject(finalJSON);

JSONObject object2 =  object1.getJSONObject("reply");

JSONArray jsonArray = object2.getJSONArray("users");

JSONObject object3 =  jsonArray.getJSONObject(0);

答案 2 :(得分:0)

尝试以下方法:

JSONObject root = null;
try {
    root = new JSONObject("reply");
    JSONArray childArray = root.getJSONArray("users");
    String userName = childArray.getString(0);
    .
    .
    .
} catch (JSONException e) {
    e.printStackTrace();
}