javascript — формат json ответа на родительский и дочерний

Привет, я получил ответ от запроса. Ответ как:

{ data: [
{
parent: "summer",
image: "template/assets/x354.jpg",
productName: "United Colors of Benetton"    },   {   parent: "autumn",   image: "template/assets/x354.jpg",   productName: "United
Colors of Benetton" }, { parent: "summer", image:
"template/assets/x354.jpg", productName: "Puma Running Shoes" } ] }

В основном я хочу функцию в php для форматирования этого ответа.
идентичный родитель в ответе в данном случае это «лето», данные
о лете должен печатать под ним. т.е. летом должен быть родитель
данных. Желаемый ответ:

{ data: [
{
parent: "autumn",
image: "template/assets/x354.jpg", productName: "United Colors of Benetton" }, { parent: "summer" [{ image:
"template/assets/x354.jpg", productName: "United Colors of Benetton"}, { image: "template/assets/x354.jpg", productName: "Puma Running
Shoes" } ] }

] }

0

Решение

Отправленный вами ответ на запрос не является допустимым JSON, поскольку свойства объекта не являются строками в кавычках, вам нужно позаботиться об этом, чтобы иметь возможность проанализировать строку JSON с json_decode(), (Увидеть https://stackoverflow.com/a/6941739/846987 например.)

Это должно генерировать желаемый результат:

<?php

$json = <<<EOT
{
"data": [
{
"parent": "summer",
"image": "template\/assets\/x354.jpg",
"productName": "United Colors of Benetton"},
{
"parent": "autumn",
"image": "template\/assets\/x354.jpg",
"productName": "United Colors of Benetton"},
{
"parent": "summer",
"image": "template\/assets\/x354.jpg",
"productName": "Puma Running Shoes"}
]
}
EOT;
$jsonObject = json_decode($json);

$categories = array();
foreach($jsonObject->data as $element) {
if ( ! isset($categories[$element->parent])) {
$categories[$element->parent] = array();
}
$categories[$element->parent][] = $element;
unset($element->parent);
}

echo '<pre>' . json_encode($categories, JSON_PRETTY_PRINT) . '</pre>';
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]