jsonObj.getJsonArray ("users"), а затем преобразовать массив в список. Теперь используйте Java 8 Stream и Filter API для извлечения желаемого результата.

У меня есть следующий ответ JSON после запроса получить список пользователей. Я хочу получить только один идентификатор пользователя, используя userName. Например, если я хочу идентификатор пользователя с именем Test1, как это сделать? Любая помощь будет оценена.

Спасибо,

      {
         "displayLength": "4",
         "iTotal": "20",
         "users": [
         {
            "id": "2",
            "userName": "Test1",
            "Group": {   id:1
                         name:"Test-Admin"
                         }
        },
        {
            "id": "17",
            "userName": "Test2",
            "Group": {   id:1
                         name:"Test-Admin"
                         }
        },
        {
            "id": "32",
            "userName": "Test3",
            "Group": {   id:1
                         name:"Test-Admin"
                         }
        },
        {
            "id": "35",
            "userName": "Test4",
            "Group": {   id:1
                         name:"Test-Admin"
                         }
        }  

    ]
   }

Что вы пробовали? Покажите нам некоторые усилия, и где вы столкнулись с проблемой?

 Raju Sharma16 сент. 2017 г., 19:31
Посмотрите, поможет ли приведенный ниже код. Просто передайте имя пользователя

Ответы на вопрос(2)

Решение Вопроса

 переменная и пусть код найдетuserName для тебя.userIdБлагодарю за ваш ответ. Также есть ли способ проанализировать список пользователей строки json в табличном формате?

JSONObject json = new JSONObject(" {\n" + "         \"displayLength\": \"4\",\n"
        + "         \"iTotal\": \"20\",\n" + "         \"users\": [\n" + "         {\n"
        + "            \"id\": \"2\",\n" + "            \"userName\": \"Test1\",\n"
        + "            \"Group\": {   id:1,\n" + "                         name:\"Test-Admin\"\n"
        + "                         }\n" + "        },\n" + "        {\n" + "            \"id\": \"17\",\n"
        + "            \"userName\": \"Test2\",\n" + "            \"Group\": {   id:1,\n"
        + "                         name:\"Test-Admin\"\n" + "                         }\n" + "        },\n"
        + "        {\n" + "            \"id\": \"32\",\n" + "            \"userName\": \"Test3\",\n"
        + "            \"Group\": {   id:1,\n" + "                         name:\"Test-Admin\"\n"
        + "                         }\n" + "        },\n" + "        {\n" + "            \"id\": \"35\",\n"
        + "            \"userName\": \"Test4\",\n" + "            \"Group\": {   id:1,\n"
        + "                         name:\"Test-Admin\"\n" + "                         }\n" + "        }  \n"
        + "\n" + "    ]\n" + "   }");

JSONArray array = json.getJSONArray("users");

String userName = "Test1";
Integer userId = null;

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

    JSONObject jsonIn = (JSONObject) array.get(i);

    if (jsonIn.optString("userName").equals(userName)) {
        userId = jsonIn.optInt("id");
    }
}

System.out.println("User ID for User Name '" + userName + "' is : " + userId);
 Hatim Stovewala21 сент. 2017 г., 02:10
Я рекомендую использовать
 user618324321 сент. 2017 г., 00:00
JSON - это полуструктурированный тип данных. Он не структурирован как набор результатов из SQL. В JSON могут быть вложенные объекты или массив, которые не будут соответствовать табличному формату. Вы все еще можете сделать табличный формат, только если структура является строгой, которая предопределена.

HTTP-запрос построен на Apache HTTP API. Вы должны создать класс ResponseData для анализа ответа.Примечание: ваш JSON неверен. Смотрите Исправлено:

 private static final HttpRequest<ResponseData> HTTP_REQUEST = 
        HttpRequestBuilder.createGet(yourUri, ResponseData.class).build();

    public void test() {
    HTTP_REQUEST.execute().ifHasContent(responseData -> {
        Optional<User> foundedUser = responseData.getUsers()
                .stream()
                .filter(user -> "Test1".equals(user.getUserName()))
                .findFirst();
         foundedUser.ifPresent(user -> System.out.println(user.getId()));
       });
    }

  class ResponseData {
    private int displayLength;
    private int iTotal;
    private List<User> users;

    public int getDisplayLength() {
        return displayLength;
    }

    public void setDisplayLength(int displayLength) {
        this.displayLength = displayLength;
    }

    public int getiTotal() {
        return iTotal;
    }

    public void setiTotal(int iTotal) {
        this.iTotal = iTotal;
    }

    public List<User> getUsers() {
        return users;
    }

    public void setUsers(List<User> users) {
        this.users = users;
    }
}

class User {
    private int id;
    private String userName;
    private Group Group;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public Group getGroup() {
        return Group;
    }

    public void setGroup(Group group) {
        Group = group;
    }
}

class Group {
    private int id;
    private String name;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

jsonObj.getJsonArray ("users"), а затем преобразовать массив в список. Теперь используйте Java 8 Stream и Filter API для извлечения желаемого результата.

{
  "displayLength": "4",
  "iTotal": "20",
  "users": [
    {
      "id": "2",
      "userName": "Test1",
      "Group": {
        "id": 1,
        "name": "Test-Admin"
      }
    },
    {
      "id": "17",
      "userName": "Test2",
      "Group": {
        "id": 1,
        "name": "Test-Admin"
      }
    },
    {
      "id": "32",
      "userName": "Test3",
      "Group": {
        "id": 1,
        "name": "Test-Admin"
      }
    },
    {
      "id": "35",
      "userName": "Test4",
      "Group": {
        "id": 1,
        "name": "Test-Admin"
      }
    }
  ]
}

Ваш ответ на вопрос