Как преобразовать текст JSON в ассоциативный массив PHP - PullRequest
4 голосов
/ 24 ноября 2010

У меня есть следующий объект JSON, хранящийся в текстовом файле (data.txt):

{"player":"black","time":"0","from":"2c","to":"3d"}

Который я читаю, используя php:

<?php
  $data = file_get_contents('data.txt');
?>

Вопрос: Существует ли простой способ преобразования $data в ассоциативный массив PHP. Я пытался использовать json_decode($data);, но это не сработало, какие-либо предложения?

Ответы [ 3 ]

20 голосов
/ 24 ноября 2010
$assocArray = json_decode($data, true);

Второй параметр устанавливает результат в виде объекта (false, по умолчанию) или ассоциативного массива (true).

2 голосов
/ 24 ноября 2010

Попробуйте: json_decode($data, true)

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

Это сработало для меня.Кроме того, убедитесь, что ваша версия PHP имеет json_encode / json_decode

0 голосов
/ 22 мая 2015

Вы можете использовать эту функцию для преобразования массива из json в php, это можно проверить, если указанная строка является допустимой json или нет:

function convert_to_json($file, $in_array = True) {
    if(file_exists($file)) {
        $string = file_get_contents($file);
    }else {
        $string = $file;
    }

    $return_array = json_decode($string, $in_array);
    if (json_last_error() == JSON_ERROR_NONE) {
        return $return_array;
    }

    return False;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...