Я хотел знать, можно ли использовать ObjectMapper от Jackson для чтения событий одно за другим.
У меня есть большой файл JSON, состоящий из множества событий, которые мне нужно преобразовать в XML. Я не хочу загружать полные события JSON в свою память, а хочу обрабатывать события одно за другим. Следовательно, я использую библиотеку Java Jackson, которая может проходить через файл JSON и получать одно событие JSON за раз, которое я затем могу преобразовать в XML. Таким образом, одновременно в память будет загружаться только одно событие.
Я знаю, что могу использовать JsonParser от Джексона, который будет проходить через файл JSON один за другим, но таким образом мне нужно обрабатывать множество вещей.
У меня есть классы Java, созданные из XSD (с использованием JAXB2), поэтому я подумываю об использовании класса ObjectMapper из Jackson, который может напрямую сопоставлять каждое событие с соответствующим классом Java, который позже я могу использовать для преобразования в соответствующий XML с помощью метода Marshalling.
Я не понимаю, как прочитать событие одно за другим с помощью ObjectMapper и назначить его соответствующему классу Java.
Ниже приведена простая версия моего файла JSON: (Это образец JSON, мой исходный JSON очень сложен)
{
"@context":"https://context.org/context.jsonld",
"isA":"SchoolManagement",
"format":"application/ld+json",
"schemaVersion":"2.0",
"creationDate":"2021-04-21T10:10:09+00:00",
"body":{
"members":[
{
"isA":"student",
"name":"ABCS",
"class":10,
"coaching":[
"XSJSJ",
"IIIRIRI"
],
"dob":"1995-04-21T10:10:09+00:00"
},
{
"isA":"teacher",
"name":"ABCS",
"department":"computer science",
"school":{
"name":"ABCD School"
},
"dob":"1995-04-21T10:10:09+00:00"
},
{
"isA":"boardMember",
"name":"ABCS",
"board":"schoolboard",
"dob":"1995-04-21T10:10:09+00:00"
}
]
}
}
Я хочу прочитать событие в массиве «члены» одно за другим и проверить, является ли оно «учеником», «учителем» и т. д., а затем назначить его соответствующему классу.
public class Main {
public static void main(String[] args) throws JsonParseException,
JsonMappingException,
IOException,
JAXBException {
final ObjectMapper objectMapper = new ObjectMapper();
// Accept the Null values for some fields
objectMapper.setSerializationInclusion(Include.NON_NULL);
// If any unknown properties found then do not fail
objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
//Here I want to read the element within an array
Student event = objectMapper.readValue(Main.class.getResourceAsStream("/events.json"), Student.class);
System.out.println(event);
}
}
Подробнее здесь: https://stackoverflow.com/questions/671 ... -from-json
Есть ли способ использовать Jackson ObjectMapper для чтения объекта из JSON один за другим? ⇐ JAVA
Программисты JAVA общаются здесь
1770264425
Anonymous
Я хотел знать, можно ли использовать ObjectMapper от Jackson для чтения событий одно за другим.
У меня есть большой файл JSON, состоящий из множества событий, которые мне нужно преобразовать в XML. Я не хочу загружать полные события JSON в свою память, а хочу обрабатывать события одно за другим. Следовательно, я использую библиотеку Java Jackson, которая может проходить через файл JSON и получать одно событие JSON за раз, которое я затем могу преобразовать в XML. Таким образом, одновременно в память будет загружаться только одно событие.
Я знаю, что могу использовать JsonParser от Джексона, который будет проходить через файл JSON один за другим, но таким образом мне нужно обрабатывать множество вещей.
У меня есть классы Java, созданные из XSD (с использованием JAXB2), поэтому я подумываю об использовании класса ObjectMapper из Jackson, который может напрямую сопоставлять каждое событие с соответствующим классом Java, который позже я могу использовать для преобразования в соответствующий XML с помощью метода Marshalling.
Я не понимаю, как прочитать событие одно за другим с помощью ObjectMapper и назначить его соответствующему классу Java.
Ниже приведена простая версия моего файла JSON: (Это образец JSON, мой исходный JSON очень сложен)
{
"@context":"https://context.org/context.jsonld",
"isA":"SchoolManagement",
"format":"application/ld+json",
"schemaVersion":"2.0",
"creationDate":"2021-04-21T10:10:09+00:00",
"body":{
"members":[
{
"isA":"student",
"name":"ABCS",
"class":10,
"coaching":[
"XSJSJ",
"IIIRIRI"
],
"dob":"1995-04-21T10:10:09+00:00"
},
{
"isA":"teacher",
"name":"ABCS",
"department":"computer science",
"school":{
"name":"ABCD School"
},
"dob":"1995-04-21T10:10:09+00:00"
},
{
"isA":"boardMember",
"name":"ABCS",
"board":"schoolboard",
"dob":"1995-04-21T10:10:09+00:00"
}
]
}
}
Я хочу прочитать событие в массиве «члены» одно за другим и проверить, является ли оно «учеником», «учителем» и т. д., а затем назначить его соответствующему классу.
public class Main {
public static void main(String[] args) throws JsonParseException,
JsonMappingException,
IOException,
JAXBException {
final ObjectMapper objectMapper = new ObjectMapper();
// Accept the Null values for some fields
objectMapper.setSerializationInclusion(Include.NON_NULL);
// If any unknown properties found then do not fail
objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
//Here I want to read the element within an array
Student event = objectMapper.readValue(Main.class.getResourceAsStream("/events.json"), Student.class);
System.out.println(event);
}
}
Подробнее здесь: [url]https://stackoverflow.com/questions/67194173/is-there-a-way-to-make-use-of-jackson-objectmapper-to-read-the-object-from-json[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия