Intereting Posts
PHP. Преобразование многомерного массива в 2D-массив с помощью точечных обозначений. SimpleXML – добавить новый узел, используя ранее объявленное пространство имен – как? Сессия автоматически заканчивается в laravel 5.2 Ошибка с пользовательской функцией PHP: никакая переменная не возвращается WordPress: как добавить запятые в эту функцию get_the_category Проблемы с загрузкой нескольких файлов в Symfony2 Возможно ли в PHP предотвратить «Неустранимая ошибка: вызвать неопределенную функцию»? Определите, где была вызвана функция с PHP Получение доменного имени без TLD Google Analytics Core Reporting API версии 3.0 без входа в систему Symfony 2.3: Как обновить аутентифицированный пользователь из базы данных? file_get_contents Добавление чисел из 2 текстовых файлов Могу ли я использовать try-catch-finally вот так? Идентификация имен столбцов в операторах PDO Force загружает несколько файлов blob в php

PHP добавляет кавычки в массив для json_decode

Я ищу json_decode строку, но столкнулся с проблемой, когда элементы массива не имеют кавычек.

JSON

{"Status":"DISPUTED","GUID":[]} {"Status":"CONFIRMED","GUID":[G018712, G017623]} 

PHP

 $json = '{"Status":"CONFIRMED","GUID":[G018712,G017623]}'; $a = json_decode($json, true); print $a['Status']; 

Результаты

В вышеприведенной php-печати ничего не будет отображаться, потому что буквы смешаны с числами внутри массива, а json_decode не нравится. Как бы добавить строки к каждому элементу массива, чтобы json_decode работал?

Ваш json недействителен. Должен быть –

 $json = '{"Status":"CONFIRMED","GUID":["G018712","G017623"]}'; 

или

 $json = '{Status:"CONFIRMED",GUID:["G018712","G017623"]}'; 

Вы можете легко исправить это, используя-

 $json = preg_replace('/(?<!")(?<!\w)(\w+)(?!")(?!\w)/', '"$1"', $json); 

Полный пример

 $json = '{"Status":"CONFIRMED","GUID":[G018712,G017623]}{"Status":"CONFIRMED","GUID":[018712,a017623]}'; // fix json $json = preg_replace('/(?<!")(?<!\w)(\w+)(?!")(?!\w)/', '"$1"', $json); $a = json_decode($json, true); print $a['Status'];