有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java在安卓 studio中从JSON响应中获取值

我想从xml文件中的位置获取全名,包括标题、第一个和最后一个以及城市值。我是说正确的道路。 你能帮我写这段代码吗。多谢各位

            JSONObject object = new JSONObject(s);
            JSONArray array = object.optJSONArray("results");

            for (int i = 0; i < array.length(); i++) {

                JSONObject jsonObject = array.optJSONObject(i);
                
                String Name = jsonObject.optString("name");
                String City = jsonObject.optString("location");
                String Email = jsonObject.optString("email");
                String Phone = jsonObject.optString("phone");

                testModel model = new testModel();
                
                model.setFullname(Name);
                model.setCity(City);
                model.setEmail(Email);
                model.setPhone(Phone);
                arrayList.add(model);

JSON响应:

{"results":[{"name":{"title":"Mrs","first":"Elsa","last":"Sanchez"},"location":{"street":{"number":8890,"name":"Rue Dumenge"},"city":"Pau","state":"Ardèche","country":"France","postcode":61036,"coordinates":{"latitude":"-3.4635","longitude":"168.2515"},"timezone":{"offset":"0:00","description":"Western Europe Time, London, Lisbon, Casablanca"}},"email":"elsa.sanchez@example.com","phone":"02-24-50-09-33","picture":{"large":"https://randomuser.me/api/portraits/women/39.jpg","medium":"https://randomuser.me/api/portraits/med/women/39.jpg","thumbnail":"https://randomuser.me/api/portraits/thumb/women/39.jpg"}}],"info":{"seed":"3060b5a6b7ff6a03","results":1,"page":1,"version":"1.3"}}

共 (1) 个答案

  1. # 1 楼答案

    下面是如何从您的响应中获取street字段的示例:

    try {
            JSONObject jsonObject = new JSONObject(response);
            JSONArray results = jsonObject.getJSONArray("results");
            for (int i = 0; i < results.length(); i++) {
                JSONObject jo = results.getJSONObject(i);
                JSONObject location = jo.getJSONObject("location");
                String street= location.optString("street");
            }
    } catch (JSONException e) {
            e.printStackTrace();
    }
    

    您可能应该添加一个检查,检查循环中当前JSONObject的键是否是您要查找的“location”键