2016-05-26 4 views
0

я получил 2 JSON файлы, извлеченные из той же БД,JSON не работает на PHP Script

:)

{ 
    "hint_data": { 
     "locations": ["AXQDAP____8AAAAABwAAABEAAAAYAAAAIwIAAERwAgAAAAAADgyCAef7TAMCAAEB", "bOsDAP____8AAAAAAwAAAAcAAADFAQAAFAAAAEJwAgAAAAAANQeCAdzdTAMFAAEB"], 
     "checksum": 326195011 
    }, 
    "route_name": ["", ""], 
    "via_indices": [0, 15], 
    "via_points": [ 
     [25.299982, 55.376873], 
     [25.29874, 55.369179] 
    ], 
    "found_alternative": false, 
    "route_summary": { 
     "end_point": "", 
     "start_point": "", 
     "total_time": 101, 
     "total_distance": 871 
    }, 
    "route_geometry": "{[email protected]}|rhBpBaBvHuC`EuArEUtEtAlDvEnD`[email protected]@[email protected]", 
    "status_message": "Found route between points", 
    "status": 0 
} 

б :)

{ 
    "alternative_names": [ 
     ["", ""] 
    ], 
    "route_name": ["", ""], 
    "status_message": "Found route between points", 
    "route_geometry": "qo{[email protected]@GCzEyBfIyEtEoNtEuMpAuHkAsCgC[mB{AgCuA{@[email protected]}[email protected]}@[email protected]@uBeBeB_CcGcXyFi^{Dg\\wBkP_Fs^wBiS_Ce[_D}[email protected]_WyJeE}[email protected]|@loBq^[email protected]@[email protected]@r^[email protected]@[email protected]@[email protected]|[email protected][email protected]@[email protected]~zAncBxnAkB|bB|CbmCl]rYxCzkCjwBzoBjxGl_G|fNhcMf~E~mE~pFt}[email protected]@z}@[email protected][email protected][email protected]@[email protected]@[email protected]@[email protected]@[email protected]_DvF}qAf}[email protected]{@{CnFoKdR}mAxBgM|[email protected]|}@[email protected]@kOzXmEfGmSx^[email protected]@mDtL}[email protected][email protected]@[email protected]@uUl\\}DpFzCrCr|@[email protected]|NbLroBx_BdZlV|[email protected]@r|@[email protected]|[email protected]@}OXuMQcDhEoBgBeCCu[xXmBH", 
    "route_summary": { 
     "end_point": "", 
     "start_point": "", 
     "total_time": 824, 
     "total_distance": 15391 
    }, 
    "found_alternative": true, 
    "alternative_summaries": [{ 
     "end_point": "", 
     "start_point": "", 
     "total_time": 886, 
     "total_distance": 14967 
    }], 
    "via_points": [ 
     [25.196808, 55.273754], 
     [25.139168, 55.187702] 
    ], 
    "status": 0, 
    "via_indices": [0, 144], 
    "hint_data": { 
     "locations": ["TdMLAP____8AAAAADwAAAA8AAAA9AAAAbAAAAOtwBgAAAAAACXmAARxpSwMEAAEB", "4Q4AAGKyBgAAAAAACQAAAAAAAAAhAQAAAAAAAGUYAAAAAAAA4Zd_AfgYSgMGAAEB"], 
     "checksum": 326195011 
    }, 
    "alternative_geometries": ["qo{[email protected]@GCzEyBfIyEtEoNtEuMpAuHkAsCgC[mB{AgCuA{@[email protected]}[email protected]}@[email protected]@uBeBeB_CcGcXyFi^{Dg\\wBkP_Fs^wBiS_Ce[_D}[email protected]_WyJeE}[email protected]|@loBq^[email protected]@[email protected]}[email protected]|[email protected]|O}@[email protected]@[email protected][email protected][email protected]|[email protected]}[email protected]@dQ~J|rBpmAj_CfyAlAzD^[email protected][l|@}[email protected]}[email protected]@[email protected]@ptAk^[email protected]|Bp[[email protected][email protected]|@lbDrzBjWlQ|[email protected]@[email protected]@j^[email protected]@bGvCjkBvoAbjDr}BvfAx{@t\\rSfoDviC~zAjgAfOxIvAbAjwCtsBv|@|[email protected]|BvLId_Dt|[email protected]@[email protected]\[email protected]@nwFpE|jBl|AzFzE|[email protected]\\[email protected]@[email protected]@[email protected]@z[[email protected]@zCrCr|@[email protected]|NbLroBx_BdZlV|[email protected]@r|@[email protected]|[email protected]@}OXuM`QcDhEoBgBeCCu[xXmBH"], 
    "alternative_indices": [0, 183] 
} 

И я Я запускаю этот скрипт в каждом файле JSON. Вот сценарий.

<?php 
    $json  = '{"hint_data":{"locations":["AXQDAP____8AAAAABwAAABEAAAAYAAAAIwIAAERwAgAAAAAADgyCAef7TAMCAAEB","bOsDAP____8AAAAAAwAAAAcAAADFAQAAFAAAAEJwAgAAAAAANQeCAdzdTAMFAAEB"],"checksum":326195011},"route_name":["",""],"via_indices":[0,15],"via_points":[[25.299982,55.376873],[25.29874,55.369179]],"found_alternative":false,"route_summary":{"end_point":"","start_point":"","total_time":101,"total_distance":871},"route_geometry":"{[email protected]}|rhBpBaBvHuC`EuArEUtEtAlDvEnD`[email protected]@[email protected]","status_message":"Found route between points","status":0}'; 
    $data  = json_decode($json); 
    $totalTime = $data->route_summary->total_time; 
    var_dump($totalTime); // DUMPS  101 

Я получаю первый файл JSON-файла правильно, но во 2-й я получаю сообщение об ошибке.

Скажите, пожалуйста, что случилось с файлом JSON.

+0

Что * S ошибки вы получаете? –

+0

Прежде всего «Я получаю сообщение об ошибке» бесполезен для всех, кто пытается вам помочь. Всегда включайте текст ошибки в свой вопрос. Ваша проблема в том, что строка «alternative_geometries» не экранирована должным образом, она содержит один символ '' '' '' '' 'перед' '' '' '' '' ''', заставляя его считать '' '' \ x'' '', который не является допустимым специальным символом. –

ответ

0

1) поместить данные в текстовый файл

2) попробуйте снова:

<?php 

$data = file_get_contents('./relative/path/to/file.json'); 
$data = json_decode($data); 
$totalTime = $data->route_summary->total_time; 
var_dump($totalTime); 
  • было бы лучше, чтобы записать данные в файлы и положить куда-нибудь, чтобы загрузить их, чтобы проверить файл.
+0

Как это решение может работать на вас? когда возникает проблема с данными JSON, указанными @ rik-heywood? – itzmukeshy7

+0

@ itzmukeshy7, потому что в вопросе он просто копирует данные пасты в переменную, и там могут быть некоторые символы, которые не анализируются, как обычно. Так что лучше сохранить его как есть в файле и прочитать его. – num8er

4

Ваш json недействителен.

Свойство "alternative_geometries" содержит строку, которая неправильно кодирована. (\ Х не является допустимым Если вы хотите слэш, то необходимо будет \\x.)

Попробуйте проверки его где-то вроде этого: http://jsonlint.com/