Как прочитать JSON объект в Java

238
15 апреля 2022, 01:00

Я пытаюсь прочитать JSON объект в Java (только начинаю с JSON)

JSON файл:

[
  {
    "id": 0,
    "server": "Singleplayer",
    "dimension": 0,
    "position": {
      "coords_1": -214,
      "coords_2": 76,
      "coords_3": 330
    },
    "name": "d",
    "time": "08:49:14 08/11/2020"
  }
]

Как я могу прочитать position?

Answer 1

Для примера создание юзера из 3 параметров: имя, фамилия и зарплата. Примерно так, думаю разберётесь

@WebServlet(urlPatterns = "/add")
  public class ServletAdd extends HttpServlet {
  Gson gson = new GsonBuilder().setPrettyPrinting().create();
        
    @Override
            protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
                StringBuffer jb = new StringBuffer();
                String line;
                try {
                    BufferedReader reader = req.getReader();
                    while ((line = reader.readLine()) != null){
                        jb.append(line);
                    }
                } catch (Exception e){
                    System.out.println("Error");
                }
                JsonObject jobj = gson.fromJson(String.valueOf(jb), JsonObject.class);
        
                req.setCharacterEncoding("UTF-8");
        
                String name = jobj.get("name").getAsString();
                String surname = jobj.get("surname").getAsString();
                double salary = jobj.get("salary").getAsDouble();
                User user = new User(name, surname, salary);
                pw.print(gson.toJson(user));
        }

===========================================================================

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Создать нового пользователя</title>
</head>
<body>
<form method="post" action="add">
    <label>Имя:
        <input type="text" name="name">
    </label>
    <label>Фамилия:
        <input type="text" name="surname">
    </label>
    <label>Зарплата:
        <input type="text" name="salary">
    </label>
    <button type="submit">Создать</button>
</form>
<a href="index.jsp">Домой</a>
</body>
</html>
READ ALSO
Как создать POJO обьект из YAML файла использую Spring Boot?

Как создать POJO обьект из YAML файла использую Spring Boot?

По идее все просто если файл yaml называется applicationyaml тогда обьект (POJO) со следующими аннотациями

169
Socket-server java on apache-tomcat

Socket-server java on apache-tomcat

Интересует возможность развёртывания Сокет-сервера java на apache-tomcat

213
Разделение строки по 3 символа

Разделение строки по 3 символа

В данной строчке кода (в теории) должен объявляться массив, в который присваивается огромное предложение без пробелов, разделённое по три...

310
Вылетает NoSuchElementException в NetBeans

Вылетает NoSuchElementException в NetBeans

Я не могу понять, почему в NetBeans у меня вылетает исключение NoSuchElementException ещё до ввода данныхДо этого программу запускал в VS Code, и там всё работало...

151