Форум программистов, компьютерный форум, киберфорум
Java EE (J2EE)
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/18: Рейтинг темы: голосов - 18, средняя оценка - 4.67
1 / 1 / 0
Регистрация: 10.08.2014
Сообщений: 97
1

Java Json jackson разбить на части и засунуть в массив

03.06.2019, 19:32. Показов 3587. Ответов 2

Author24 — интернет-сервис помощи студентам
Помогите пож-та разбить мою Json строку на три части при помощи jackson

Есть Json:

JSON
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
{
   "result": {
      "AddResults": [{
            "Errors": [{
               "Code": 5005,
               "Message": "Field set incorrectly",
               "Details": "Date value in the StartDate field cannot be earlier than the current date"
            }]
         },
         {
            "Errors": [{
               "Code": 5005,
               "Message": "Field set incorrectly",
               "Details": "Date value in the StartDate field cannot be earlier than the current date"
            }]
         },
         {
            "Id": 43662572
         }
      ]
   }
}
Как мне этот Json положить в массив, чтоб в нем было 3 части (форматирование и скобки не важны, главное текст):
1.
JSON
1
2
3
4
5
6
7
{
            "Errors": [{
               "Code": 5005,
               "Message": "Field set incorrectly",
               "Details": "Date value in the StartDate field cannot be earlier than the current date"
            }]
}
2.
JSON
1
2
3
4
5
6
7
{
            "Errors": [{
               "Code": 5005,
               "Message": "Field set incorrectly",
               "Details": "Date value in the StartDate field cannot be earlier than the current date"
            }]
}
3.
JSON
1
2
3
{
            "Id": 43662572
}
Вот мой неработающий код, чего я только не пробовал, ничего не помогает

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
import com.fasterxml.jackson.databind.ObjectMapper;
import java.io.IOException;
import java.util.List;
 
public class AddResults {
 
    public static void main(String[] args) throws IOException {
        String jsonInput = "{\n" +
                "\t\"result\": {\n" +
                "\t\t\"AddResults\": [{\n" +
                "\t\t\t\t\"Errors\": [{\n" +
                "\t\t\t\t\t\"Code\": 5005,\n" +
                "\t\t\t\t\t\"Message\": \"Field set incorrectly\",\n" +
                "\t\t\t\t\t\"Details\": \"Date value in the StartDate field cannot be earlier than the current date\"\n" +
                "\t\t\t\t}]\n" +
                "\t\t\t},\n" +
                "\t\t\t{\n" +
                "\t\t\t\t\"Errors\": [{\n" +
                "\t\t\t\t\t\"Code\": 5005,\n" +
                "\t\t\t\t\t\"Message\": \"Field set incorrectly\",\n" +
                "\t\t\t\t\t\"Details\": \"Date value in the StartDate field cannot be earlier than the current date\"\n" +
                "\t\t\t\t}]\n" +
                "\t\t\t},\n" +
                "\t\t\t{\n" +
                "\t\t\t\t\"Id\": 43662572\n" +
                "\t\t\t}\n" +
                "\t\t]\n" +
                "\t}\n" +
                "}";
 
        ObjectMapper om = new ObjectMapper();
        List<String> valuesNode = om.readTree(jsonInput).findValuesAsText("AddResults");
 
 
        for (String el : valuesNode) {
            System.out.println(el);
        }
 
    }
}
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.06.2019, 19:32
Ответы с готовыми решениями:

Java Json Jackson десериализация дженерики
Хочу сделать так, чтоб этот метод «convertResponceInObjects» работал с разными объектами, но не...

Как разбить массив по 3 елемента и засунуть в другой массив
Здарова форумчане. Помогите, кому не лень решить задачу по программированию на c++ Кароче нам дан...

Как разбить json на две части
Как разобрать json Здравствуйте. помогите разбить JSON вида: с: { a1:1 b1:2 }

Строку AnsiString разбить по словам и засунуть в массив
Есть строка: AnsiString s= &quot;Дед%Мазай%Любил%Больших%Девочек&quot;; как её можно разбить по словам...

2
Автоматизируй это!
Эксперт Python
7107 / 4610 / 1215
Регистрация: 30.03.2015
Сообщений: 13,236
Записей в блоге: 29
03.06.2019, 19:47 2
Лучший ответ Сообщение было отмечено 040985 как решение

Решение

если добавить депенденси JsonPath и форматирование не важно, то можно просто
Java
1
2
JsonPath.from(jsonInput).getList("result.AddResults").forEach(System.out::println);
// вместо форИч можешь просто в лист сложить
но если надо конкретно Джексоном решать, то наверное только маппить на сответствующие объекты
1
1 / 1 / 0
Регистрация: 10.08.2014
Сообщений: 97
03.06.2019, 21:39  [ТС] 3
Welemir1, Спасибо! Отличный вариант
0
03.06.2019, 21:39
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.06.2019, 21:39
Помогаю со студенческими работами здесь

Строку AnsiString разбить по словам и засунуть в массив
Есть строка: AnsiString s= &quot;Дед%Мазай%Любил%Больших%Девочек&quot;; как её можно разбить по словам...

Как засунуть массив Map в JSON
Требуется записать в JSON в виде: { &quot;Name of File&quot;: &quot;face0.jpg&quot;, &quot;Coordinates&quot;: &quot;, &quot;&quot;,...

Разбить массив на 4 части по диагонали и посчитать сумму в каждой части
Двумерный массив. Разбить массив на 4 части по диагонали и посчитать сумму в каждой части. Помогите...

Json (Jackson) значение вместо объекта
Подскажите, как с помощью аннотаций можно упростить объект до значения? На примере: есть класс ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru