Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Универсальный метод для сборки Jakson Json / 13 сообщений из 13, страница 1 из 1
07.06.2018, 13:58
    #39657374
qi_ip
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Универсальный метод для сборки Jakson Json
Приветствую! Подскажите есть какой-нибудь универсальный метод/алгоритм для сборки Json объекта, чтобы в коде везде не плодить код типа:

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
ObjectMapper mapper = new ObjectMapper();
ObjectNode jsonNode1 = mapper.createObjectNode();
ObjectNode jsonNode2 = mapper.createObjectNode();
jsonNode2.put("id", id);
jsonNode2.set("msg", "hello");
jsonNode1.put("sernum", 123456);
jsonNode1.put("method", "MethodName");
jsonNode1.set("params", jsonNode2);



Причем, количество параметров может быть разное количество, как и вложений, типа jsonNode1.set("params", jsonNode2);

Насколько корректно будет использование, например, такого метода:

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
public static ObjectNode compileJson(ObjectNode objectNode, Object ... args) {
String fieldName = "";
for(int i=0; i<args.length;i++){
    if(i % 2 == 0){
        fieldName = args[i].toString();
    } else {
        switch(args[i].getClass().getCanonicalName()){
            case "com.fasterxml.jackson.databind.node.ObjectNode":
                objectNode.set(fieldName, (ObjectNode) args[i]);
                break;
            case "java.lang.String":
                objectNode.put(fieldName, (String)args[i]);
                break;
            case "java.lang.Long":
                objectNode.put(fieldName, (Long) args[i]);
                break;
            default:
                break;
        }
    }
}
return objectNode;
}    



Код: java
1.
2.
3.
4.
ObjectMapper mapper = new ObjectMapper();
ObjectNode jsonNode1 = mapper.createObjectNode();
ObjectNode jsonNode2 = mapper.createObjectNode();
authRequestJsonNode = compileJson(jsonNode1, "params", jsonNode2 , "method", "MethodName");



Не будет ли слишком накладно по ресурсам/времени обработки?

Спасибо!
...
Рейтинг: 0 / 0
07.06.2018, 14:00
    #39657376
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Универсальный метод для сборки Jakson Json
Храните JSON конфиги в .json файлах вместо Java.
...
Рейтинг: 0 / 0
07.06.2018, 14:40
    #39657422
chpasha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Универсальный метод для сборки Jakson Json
что-то я не врубился, что за изврат происходит на экране
банальный
Код: java
1.
2.
3.
MyConfig config = objectMapper.readValue(stringContent, MyConfig.class);
//или
String json = objectMapper.writeValueAsString(config);


совсем никак?
...
Рейтинг: 0 / 0
07.06.2018, 14:40
    #39657423
qi_ip
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Универсальный метод для сборки Jakson Json
Не подскажите в какую сторону рыть? Ранее не работал с этим...Спасибо
...
Рейтинг: 0 / 0
07.06.2018, 14:42
    #39657427
chpasha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Универсальный метод для сборки Jakson Json
qi_ipНе подскажите в какую сторону рыть?не понятно, о какой стороне речь. Примеров работы с jackson вагон в гугле http://www.baeldung.com/jackson-object-mapper-tutorial
...
Рейтинг: 0 / 0
07.06.2018, 14:53
    #39657439
qi_ip
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Универсальный метод для сборки Jakson Json
chpashaqi_ipНе подскажите в какую сторону рыть?не понятно, о какой стороне речь
Это я в ответ Blazkowicz писал )))

У меня генерируется динамический JSON: в зависимости от полученных параметров, формируется JSON ответ на выход. Так как изначально не знаю, какие входные параметры (тип) придут (Long, String, ObjectNode, Integer), нужен был метод, который бы собирал этот динамический JSON из входных данных. Как-то так.
...
Рейтинг: 0 / 0
07.06.2018, 15:05
    #39657453
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Универсальный метод для сборки Jakson Json
qi_ip,

С двух сторон классы. Между ними сериализация через json. Так?
Классы где?
...
Рейтинг: 0 / 0
07.06.2018, 15:06
    #39657456
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Универсальный метод для сборки Jakson Json
qi_ipсобирал этот динамический JSON из входных данных.JSON из JSON?
...
Рейтинг: 0 / 0
07.06.2018, 15:08
    #39657459
chpasha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Универсальный метод для сборки Jakson Json
qi_ipв зависимости от полученных параметров, формируется JSON ответ на выход
я могу конечно представить себе изврат разной степени сложности, но, как правило, все довольно банально. Неужели тебе приходит абсолютно случайный набор значений, из которых нужно что-то собирать или все таки там какие-то фиксированные варианты, даже если какие-то свойства не всегда в наличии?
...
Рейтинг: 0 / 0
07.06.2018, 15:18
    #39657466
qi_ip
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Универсальный метод для сборки Jakson Json
Petro123, нет, выходной JSON формируется из данных после разных манипуляций/селектов.

chpasha, разные методы формируют разный JSON - каждый раз разный набор полей.

Суть вопроса именно в возможности уменьшить написание кода, как вариант, передавать все параметры в определенный метод, который сам соберет выходной JSON.

Возможно все это не нужно, поэтому хотел узнать мнение других.
...
Рейтинг: 0 / 0
07.06.2018, 15:24
    #39657472
chpasha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Универсальный метод для сборки Jakson Json
qi_ipразные методы формируют разный JSON
прекрасно, но один и тот же метод формирует один и тот же набор данных? что мешает создать классы MyClass1, MyClass2 и т.д. для каждого метода и конвертировать их в json одной строкой?

пока, без толкового обоснования, код приведенный тобою выше выглядит как забивание гвоздей микроскопом.
...
Рейтинг: 0 / 0
07.06.2018, 15:26
    #39657481
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Универсальный метод для сборки Jakson Json
qi_ipВозможно все это не нужно, поэтому хотел узнать мнение других. возможно.
Хибер дает наор классов.
Ты автоматом из них по сети json.
Так делают.
Иначе рассказывай.
...
Рейтинг: 0 / 0
07.06.2018, 15:31
    #39657494
qi_ip
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Универсальный метод для сборки Jakson Json
chpashaqi_ipразные методы формируют разный JSON
прекрасно, но один и тот же метод формирует один и тот же набор данных? что мешает создать классы MyClass1, MyClass2 и т.д. для каждого метода и конвертировать их в json одной строкой?

Да, все верно, проресерчу данный вариант, спасибо!


Petro123qi_ipВозможно все это не нужно, поэтому хотел узнать мнение других. возможно.
Хибер дает наор классов.
Ты автоматом из них по сети json.
Так делают.
Иначе рассказывай.

К сожалению проект без хибера. Но в целом, кажется )))), понял суть. Спасибо!
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Универсальный метод для сборки Jakson Json / 13 сообщений из 13, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]