Мне нужно общаться с оболочкой MongoDB через JavaКороче говоря, я использую что-то вроде Runtime.exec (специально для exec) для вызова оболочки MongoDB в режиме --eval
Используя этот подход, я могу успешно вызывать MongoDBкоманды, получить вывод в поток (и напечатать на stdout, например)
Все хорошо до этого момента.
Теперь мне нужно "разобрать" этот вывод в нечто вродемассив JSONObject (я могу использовать любую библиотеку JSON, например, Джексона и т. Д., Которая может быть подходящей для этого), чтобы я мог "массировать" вывод на основе некоторых требований.(Измените формат, удалите несколько пар ключ-значение и т. Д.)
Когда я смотрю на вывод, сгенерированный printjson, по крайней мере для массивов, он не является допустимым массивом json, а скорее допустимым jsonобъекты, разделенные новой строкой без запятой между ними или включающие [], что сделало бы его действительным массивом.
В этом случае, любые предложения о том, как разбить этот вывод в некоторый вид объектов-держателей, которые я могу использоватьчитать / изменять пары ключ-значение?
У меня нет команд json во время компиляции, но я знаю, что эти команды всегда заканчиваются в printjson
EDIT -
Итак, чтобы упростить, например, я ищу способ разбить следующий вывод в объекты Java -(Отдельные пары ключ / значение не известны во время компиляции)
{
"_id" : ObjectId("4db0e0289523f82ff6cd90d4"),
"calendar_date" : "2009-11-10",
"product_id" : 8,
"channel" : "website",
"country" : "USA",
"total_unit_count" : 740,
"total_amount" : 11367.29
}
{
"_id" : ObjectId("4db0e0289523f82ff6cd90d5"),
"calendar_date" : "2009-11-10",
"product_id" : 8,
"channel" : "website",
"country" : "Australia",
"total_unit_count" : 740,
"total_amount" : 13893.09
}
{
"_id" : ObjectId("4db0e0289523f82ff6cd90d6"),
"calendar_date" : "2009-11-10",
"product_id" : 8,
"channel" : "retail",
"country" : "USA",
"total_unit_count" : 13,
"total_amount" : 8296.89
}