Как расшифровать Json-таблицу Google в виде Php-массива - PullRequest
1 голос
/ 11 января 2010

Мой вызов таблицы Google Docs возвращает этот ответ в формате json
(Мне нужно только все после "строк") пожалуйста, посмотрите отформатированный ответ здесь :)

Я использую функцию php json_decode , чтобы проанализировать данные и использовать их (Да, я ужасно отношусь к php). Этот код возвращает NULL, и согласно документации, NULL возвращается ", если JSON не может быть декодирован ".

$ json = file_get_contents ($ jsonurl);
$ json_output = json_decode ($ json);

var_dump ($ json_output); // Возвращает NULL

По сути, я хочу создать простой массив из значений первой строки ответа Json.

вот так

$array = {'john','John Handcock','email@yahoo.com','2929292','blanc'}

Вы, ребята, гениальны, я был бы признателен за ваше понимание и очень помог бы в этом!

Ответ как упоминается ниже "sberry2A", ответ недействителен Json, Google предлагает для этой цели библиотеку Zend Json , поэтому я решил проанализировать версию tsv-excel вместо:)

Ответы [ 4 ]

1 голос
/ 11 января 2010

Данные в указанной вами ссылке не являются допустимыми в формате JSON. То, что вы предоставили, похоже, является расшифрованной версией. Вы можете сказать, что это не JSON, потому что ключи массива не заключены в кавычки. Например, версия должна быть «версия».

Ваши данные должны выглядеть примерно так

'{"version":"0.6","reqId":"requestIDnumber","status":"ok","sig":"65724392","table":{"cols":[{"id":"A","label":"slug","type":"string", "pattern":""},{"id":"B","label":"name","type":"string","pattern":""},{"id":"C","label":"email","type":"string","pattern":""},{"id":"D","label" :"nsid","type":"number","pattern":"#0.###############"},{"id":"E","label":"theme","type":"string","pattern":""}],"rows":[{"c":[{"v":"mo"},{"v": "Mohammad Taheri"},{"v":"email@yahoo.com"},{"v":"2929292.0","f":"2929292"},{"v":"blanc"}]}]}}'



$json = '{"version":"0.6","reqId":"requestIDnumber","status":"ok","sig":"65724392","table":{"cols":[{"id":"A","label":"slug","type":"string", "pattern":""},{"id":"B","label":"name","type":"string","pattern":""},{"id":"C","label":"email","type":"string","pattern":""},{"id":"D","label" :"nsid","type":"number","pattern":"#0.###############"},{"id":"E","label":"theme","type":"string","pattern":""}],"rows":[{"c":[{"v":"mo"},{"v": "Mohammad Taheri"},{"v":"email@yahoo.com"},{"v":"2929292.0","f":"2929292"},{"v":"blanc"}]}]}}';
$data = json_decode($json);
print_r($data->table->rows);

// выход

Array ( [0] => stdClass Object ( [c] => Array ( [0] => stdClass Object ( [v] => mo ) [1] => stdClass Object ( [v] => Mohammad Taheri ) [2] => stdClass Object ( [v] => email@yahoo.com ) [3] => stdClass Object ( [v] => 2929292.0 [f] => 2929292 ) [4] => stdClass Object ( [v] => blanc ) ) ) ) 
0 голосов
/ 09 июня 2010

Пакет PEAR Services_Json может анализировать JSON с ключами без кавычек. Итак, уберите обратный вызов и проанализируйте Services_Json, и я верю, что это сработает.

http://mike.teczno.com/JSON/doc/

0 голосов
/ 12 января 2010
$json = file_get_contents($jsonfile);
$data = json_decode($json);
print_r($data);
0 голосов
/ 11 января 2010

Вы пытались удалить функцию обратного вызова из ответа myData(...)?

...