У меня есть json, который имеет схему ниже:
|-- Pool: struct (nullable = true)
| |-- 1: struct (nullable = true)
| | |-- Client: struct (nullable = true)
| | | |-- 1: struct (nullable = true)
| | | | |-- Active: boolean (nullable = true)
| | | | |-- Alias: string (nullable = true)
| | | | |-- Chaddr: string (nullable = true)
| | | |-- 2: struct (nullable = true)
| | | | |-- Active: boolean (nullable = true)
| | | | |-- Alias: string (nullable = true)
| | | | |-- Chaddr: string (nullable = true)
| |-- 2: struct (nullable = true)
| | |-- Alias: string (nullable = true)
| | |-- Chaddr: string (nullable = true)
| | |-- ChaddrMask: string (nullable = true)
| | |-- Client: struct (nullable = true)
| | | |-- 1: struct (nullable = true)
| | | | |-- Active: boolean (nullable = true)
| | | | |-- Alias: string (nullable = true)
| | | | |-- Chaddr: string (nullable = true)
И вывод, который я пытаюсь достичь:
PoolId ClientID Client_Active
1 1 true
1 2 false
2 1 true
Эта схема постоянно меняется с json. Например, на данный момент есть 2 идентификатора пула, может быть другой json, который будет иметь 5 идентификаторов пула, и то же самое с идентификатором CLient.
Проблема с:
- Мы не можем использовать Explode на struct.
- Пул не может быть преобразован в карту, поскольку каждый раз, когда у клиента разный идентификатор клиента, что приводит к разной схеме для каждой строки.
Есть мысли, как этого добиться?
Я попробовал эту ссылку для преобразования в Struct to Map и затем взрыва, но он не работает, когда в разных пулах разное количество идентификаторов клиентов.