Разбор вложенного Json в таблицу (со всеми перестановками для вложенного атрибута)

У меня есть данные в формате JSON:

{
   "orders":[
      {
         "id":"1",
         "price":720,
         "customers":[
            {
               "id":"10",
               "name":"customer A" 
            },
            {
               "id":"14",
               "name": "customer B"
            }
         ]
      },
      {
         "id":"2",
         "price":68,
         "customers":[
            {
               "id":"7",
               "name":"customer X"
            },
            {
               "id":"8",
               "name":"customer Y"
            }
         ]
      }
   ]
}

Моя задача — просмотреть эти данные и создать таблицу со столбцами, например, orders.id, orders.number, orders.customers.id и т. д. (и, конечно, с данными справа) и со всеми перестановками для вложенных объектов.

Итак, в этом случае я должен получить что-то вроде:

+-----------+--------------+---------------------+-----------------------+
| orders.id | orders.price | orders.customers.id | orders.customers.name |
+-----------+--------------+---------------------+-----------------------+
|         1 |          720 |                  10 | customer A            |
|         1 |          720 |                  14 | customer B            |
|         2 |           68 |                   7 | customer X            |
|         2 |           68 |                   8 | customer Y            |
+-----------+--------------+---------------------+-----------------------+

Основная проблема в том, что я не знаю структуру этого файла при его загрузке. Поэтому я не знаю тип, имя и количество атрибутов и уровень вложенности. Я не знаю, в каких классах я должен хранить данные.

Я попытался использовать это: https://stackoverflow.com/a/58009049/11846473, чтобы сгладить мой Json, но я не уверен, что это хорошая идея...

Я хотел бы использовать библиотеку Jaskson для этого. Не могли бы вы дать мне несколько советов?


person mosiek    schedule 09.07.2020    source источник
comment
Почему именно вы не можете использовать код, на который вы ссылались?   -  person Lino    schedule 09.07.2020
comment
Потому что этот код только уплощает Json. Затем я не могу делать перестановки и теряю информацию о вложенных узлах (какой из них принадлежит родителю? Сколько элементов?). В конце концов я могу анализировать имена узлов в выводе, но, на мой взгляд, это не очень хорошая идея... Может быть, вы можете показать, как я могу использовать код из лестного Json?   -  person mosiek    schedule 09.07.2020
comment
Можете ли вы быть более конкретным о вашем вводе json? Откуда это взялось? Вам нужно только отобразить его в причудливой таблице? И т.п.   -  person Lino    schedule 09.07.2020
comment
Я получаю этот Json как byte[], поэтому я читаю его как ObjectMapper mapper = new ObjectMapper(); JsonNode root = mapper.readTree(file); Мне нужно сохранить свои результаты в List<Row>, где каждая строка проста Map<String, String>. Поскольку ключ - это имена столбцов, разделенных запятыми, а значение - это значения, разделенные запятыми, поэтому в моем случае, например (для первой строки): <"orders.id, orders.price, orders.customers.id, orders.customers.name", "1, 720, 10, customer A" >   -  person mosiek    schedule 09.07.2020