Разобрать JSON Array Objetct в PHP-скрипт

0

A должен отправить этот Json Array с Android на php-скрипт. В этом случае я отправил этот json с 1 элементом ('CABECERA'), и в моем php-скрипте я не знаю, как разбираться для работы.

Как мне сделать, чтобы воссоздать весь объект CABECERA из этого json?.

 $_jsone_str= [ {\"CABECERA\":[{\"CustomerID\":\"1\",\"datetime\":\"\",\"fecha\":\"150303122830\",\"idadmin\":\"3\",\"idcli\":\"4\",\"msj\":\"\",\"nroped\":\"\",\"orderId\":\"1\",\"puntoVentaID\":\"AMALGAME\",\"status\":\"0\",\"total\":\"0.0\"}]}]

$json = json_decode($_jsone_str);

foreach ( $json ->CABECERA as $decode ){
   print_r($decode);
}

Как следует разобрать этот json-массив, что я делаю неправильно?

  • 0
    Это json_decode() что вы ищете? | PHP> = 5.2.0
Теги:
arrays

3 ответа

1
Лучший ответ

Обычно я делаю следующее:

  1. Сначала я проверяю, есть ли POST JSON с POST HEADER POST:

    if( isset($_POST["POST"]) ) {
    
    }
    
  2. Я освобождаю файл JSON:

    $data = $_POST["JSON"];
    $data = stripslashes($data);
    $jsonDecoded = json_decode($data);
    
  3. Затем я разбираю данные JSON:

    foreach ($jsonDecoded->**"object/array name"** as $object) {
    
    }
    

В вашем случае "имя объекта/массива" является CABECERA

Полный код:

if( isset($_POST["JSON"]) ) {

    $data = $_POST["JSON"];
    $data = stripslashes($data);
    $jsonDecoded = json_decode($data);

    foreach ($jsonDecoded->**"object/array name"** as $object) {

    }
}
  • 1
    ты сделал мой день
0

Убедитесь, что JSON для декодирования - строка:

$_jsone_str= "[ {\"CABECERA\":[{\"CustomerID\":\"1\",\"datetime\":\"\",\"fecha\":\"150303122830\",\"idadmin\":\"3\",\"idcli\":\"4\",\"msj\":\"\",\"nroped\":\"\",\"orderId\":\"1\",\"puntoVentaID\":\"AMALGAME\",\"status\":\"0\",\"total\":\"0.0\"}]}]";

$json = json_decode($_jsone_str);

Проверьте результат:

print_r($json);

Назовите это правильным способом:

foreach ( $json as $decode ){
   print_r($decode->CABECERA);
}
0

Json-массив должен быть строкой.

И функция json_decode ($ data, true) - поиск второго пареметра, он вернет обработанный json в ассоциативных массивах, иначе он будет как объект.

    $json = "[ {\"CABECERA\":[{\"CustomerID\":\"1\",\"datetime\":\"\",\"fecha\":\"150303122830\",\"idadmin\":\"3\",\"idcli\":\"4\",\"msj\":\"\",\"nroped\":\"\",\"orderId\":\"1\",\"puntoVentaID\":\"AMALGAME\",\"status\":\"0\",\"total\":\"0.0\"}]}]";

foreach ( json_decode($json, true) as $decode ){
   print_r($decode);
}
  • 0
    не работай для меня.
  • 0
    Я только что сделал тест на код, и это сработало. Какая у вас версия php?
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню