powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Универсальный метод для сборки Jakson Json
13 сообщений из 13, страница 1 из 1
Универсальный метод для сборки Jakson Json
    #39657374
qi_ip
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Приветствую! Подскажите есть какой-нибудь универсальный метод/алгоритм для сборки 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
Универсальный метод для сборки Jakson Json
    #39657376
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Храните JSON конфиги в .json файлах вместо Java.
...
Рейтинг: 0 / 0
Универсальный метод для сборки Jakson Json
    #39657422
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
что-то я не врубился, что за изврат происходит на экране
банальный
Код: java
1.
2.
3.
MyConfig config = objectMapper.readValue(stringContent, MyConfig.class);
//или
String json = objectMapper.writeValueAsString(config);


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

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

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

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

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

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

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

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


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

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


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