Массив объектов JavaScript в массиве Php

0

Как декодировать этот массив объекта в массив Php, я использовал json_decode(), но вернул Null

$a = "[
{
    id:1,
    name:'rajan',
    class:10
},{
    id:2,
    name:'amrit',
    class:12
},{
    id:3,
    name:'arun',
    class:11
}
]";
  • 0
    Добро пожаловать в переполнение стека! Этот вопрос немного не хватает информации. Можете ли вы поделиться тем, что вы пробовали, и с какими проблемами вы столкнулись? У вас есть строка прямо сейчас - так что она не декодируется.
  • 1
    Отсутствие кавычек вокруг ключевых значений, таких как id , name и class говорит о том, что это недопустимо json
Показать ещё 8 комментариев
Теги:
arrays

1 ответ

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

Ваш JSON недействителен, поэтому json_decode возвращает null.

SyntaxError: Unexpected token i

http://json.parser.online.fr/

http://php.net/manual/en/function.json-decode.php

Возвращает значение, закодированное в json в соответствующем PHP-типе. Значения true, false и null возвращаются как TRUE, FALSE и NULL соответственно. NULL возвращается, если json не может быть декодирован или если кодированные данные глубже, чем предел рекурсии.

Я также исправил ваш JSON:

[
{
    "id": 1,
    "name":"rajan",
    "class":10
},{
    "id":2,
    "name":"amrit",
    "class":12
},{
    "id":3,
    "name":"arun",
    "class":11
}
]

Фиксация вашего сломанного JSON кодом:

$replace_keys = preg_replace("/(\w*):/i", '"$1":', $a);
$fix_values = preg_replace("/:'(\w*)'/i", ':"$1"', $replace_keys);

Затем вы можете использовать $replace_keys в json_decode. Я не уверен, что это лучший метод, так как небольшие вариации в json могут сломать его, но он исправляет его с помощью приведенного примера.


Полный код для исправления JSON:

$a = "[
{
    id:1,
    name:'rajan',
    class:10
},{
    id:2,
    name:'amrit',
    class:12
},{
    id:3,
    name:'arun',
    class:11
}
]";


$replace_keys = preg_replace("/(\w*):/i", '"$1":', $a);
$fix_values = preg_replace("/:'(\w*)'/i", ':"$1"', $replace_keys);

die($fix_values);
  • 0
    Не совсем ответ на его вопрос.
  • 0
    @Daan Ответ был расширен.
Показать ещё 11 комментариев

Ещё вопросы

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