Вы можете попробовать AMF для решения вашей проблемы (у вас есть разные библиотеки в зависимости от вашего языка программирования).
Основным преимуществом является то, что вы можете сделать отображение объекта на объект (используя Value Object) и сохранить тип данных (например, массивы).
Я использую плагин amf с Symfony, и вот пример возвращаемых данных:
SabreAMF_TypedObject Object
(
[amfClassName: private] => Продукт
[amfData:private] => Array
(
[code] => 1970A007
[designation] => 1970 PELL A007 BLANC
[description] => Vernis extra souple extra brillant
[sommeil] =>
[name] => 1970
[base] => A Stretch Enduit
[composition] => 43% PL 57% PU
[laize] => 137-140 cm
[weight] => 588 g/ml
[dechirure] => 10 daN/9 daN
[abrasion] => 5000
[xenotest] => 4/5
[non_feu] => Non
[Color] => SabreAMF_TypedObject Object
(
[amfClassName:private] => Color
[amfData:private] => Array
(
[id] => 124
[name] => BLANC
)
)
Некоторые объяснения:
[amfClassName:private] => Product
Мой объект напечатан. Что касается стороны 3, у меня тоже есть объект значения продукта, который содержит свойства массива, такие как «код», «обозначение», «описание», ... и цвет (еще один типизированный массив с цветом объекта значения)
Так что вы можете легко иметь многомерную структуру массивов ...