Я пытаюсь передать в массив JSON объект по объекту, но мне нужно импортировать его как необработанную строку JSON.Jackson JSON Streaming API: Прочитайте весь объект непосредственно в String
Учитывая массив входных данных следующим образом:
[
{"object":1},
{"object":2},
...
{"object":n}
]
Я пытаюсь перебирать струны:
{"object":1}
{"object":2}
...
{"object":n}
можно перемещаться по структуре с использованием потокового API, чтобы подтвердить, что я столкнулся объект и все такое, но я думаю, что способ, которым я возвращаю свою строку, идеален.
В настоящее время:
//[...]
//we have read a START_OBJECT token
JsonNode node = parser.readValueAsTree();
String jsonString = anObjectMapper.writeValueAsString(node);
//as opposed to String jsonString = node.toString() ;
//[...]
Я представляю себе здание всей структуры JsonNode включает в себя кучу накладных расходов, что бессмысленно, если я просто reserializing, поэтому я ищу лучшее решение. Что-то вдоль линий это было бы идеально:
//[...]
//we have read a START_OBJECT token
String jsonString = parser.readValueAsString()
//or parser.skipChildrenAsString()
//[...]
объекты, очевидно, не так просто, как
{"object":1}
поэтому я ищу, чтобы не тратить время, делая здание бессмысленного узла. Может быть какой-то идеальный способ, связанный с отображением содержимого на объекты и работой с ним, но я не в такой ситуации, когда могу это сделать. Мне нужна необработанная строка JSON, по одному объекту за раз, для работы с существующим кодом.
Любые предложения или комментарии оценены. Благодаря!
EDIT: parser.getText() возвращает текущий токен в виде текста (например, START_OBJECT -> "{"), но не остальную часть объекта.
Редактировать 2: Мотивация использования Streaming API заключается в том, чтобы буферизовать объекты по одному. Фактические файлы json могут быть довольно большими, и каждый объект можно отбросить после использования, поэтому мне просто нужно выполнить итерацию.