Лучший способ разобрать комплекс JSON - PullRequest
0 голосов
/ 27 мая 2020

Я пытаюсь найти лучшее решение для разбора моего JSON на карту. Я планирую использовать Jackson и связать его со сложными объектами и сделать некоторые итерации, чтобы создать из него плоскую карту. Пожалуйста, дайте мне знать, есть ли какой-либо простой способ, который поддерживает расширение в будущем

Вход JSON:

Data={
  "Name": "IT dept",
  "DeptProducts": [
    {
      "RepresentorsName": "BOB",
      "Product": "SOFTWARE",
      "Account": "123456",
      "AccountType": "Saving"
    },
    {
      "RepresentorsName": "BOB",
      "Product": "HARDWARE",
      "Account": "1234567",
      "AccountType": "Saving"
    }
  ],
  "DeptClients": [
    {
      "ClientName": "GOOGLE",
      "ClientRegion": "US",
      "ClientCode": "1111"
    }
  ],
  "Faculty": [
    {
      "Name": "Tom",
      "Email": null,
      "FacultyProducts": [
        {
          "RepresentorsName": "BOB",
          "Product": "SOFTWARE",
          "Account": "123456",
          "AccountType": "Saving"
        },
        {
          "RepresentorsName": "BOB",
          "Product": "HARDWARE",
          "Account": "1234567",
          "AccountType": "Saving"
        }
      ],
      "Righs": [
        {
          "Product": "SOFTWARE",
          "Type": "Local",
          "Righs": "ENABLED"
        },
        {
          "Product": "SOFTWARE",
          "Type": "Online",
          "Righs": "ENABLED"
        },
         {
          "Product": "HARDWARE",
          "Type": "Local",
          "Righs": "ENABLED"
        }

      ],
      "Clients": [
        {
          "ClientName": "GOOGLE",
          "Region": "US",
          "AccountType": 2,
          "AccountNumber": "123456",
          ],
          "Representors": [
            {
              "RepresentorsName": "BOB",
              "Country": "United States"
            }
          ]
        }
      ],
      "Representors": [
        {
          "RepresentorsName": "BOB",
          "Country": "United States"
        }
      ]
    }
  ],
  "Representors": [
    {
      "RepresentorsName": "BOB",
      "Country": "United States"
    }
  ]
}

Таким образом, иерархия такая:

Department      
    -DeptProducts:Array 
    -DeptClients:Array  
    -Faculty:Array  
        -FacultyProducts:Array
        -Righs:Array
        -Clients:Array
        -Representor:Array
    -Representor:Array     

Итак, я смогу создать карту с ключом = Имя + Продукт + Тип для каждого факультета. Также каждый факультет реплицируется для каждой группы, с которой сопоставлены, и результат снова реплицируется по типу путем сопоставления продуктов. Итак, сверху JSON, мне нужна следующая карта (я представил ее в виде таблицы для упрощенного просмотра и не заполнил всю информацию). Кроме того, если другая информация на уровне факультета отсутствует, ее следует заполнить с уровня факультета, так же как и на уровне факультета (нам нужно сопоставить информацию уровня факультета с департаментом, а затем получить другую информацию соответственно)

+------+-----------------+--------+-------+--------+----+
| Name | FacultyProducts |  Type  | info1 | info2  | …. |
+------+-----------------+--------+-------+--------+----+
| Tom  | SOFTWARE        | Local  |       |        |    |
| Tom  | HARDWARE        | Online |       |        |    |
| Tom  | HARDWARE        | Local  |       |        |    |
+------+-----------------+--------+-------+--------+----+
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...