2010-08-16 2 views
0

Iam, работающий с jsonPHP-Работа с json

Мое приложение получает строку, закодированную json_encode().

Пример: Строка как этот { "данные": "1", "данные": "2", "данные": "3"}

Мое приложение работает хорошо,

Но если браузер дал мне что-то, прежде чем я получу свою строку следующим образом: skdjksdjksdj {"data": "1", "data": "2", "data": "3"}

Мое приложение получит все skdjksdjksdj { данные ":" 1 "," данные ":" 2 "," данные ":" 3 "} и не работают

Как я могу принимать только {" data ":" 1 "," data ": "2", "data": "3"} без "skdjksdjksdj"?

я не хочу использовать str_replace, я не хочу выводить что-то в браузере до вывода строки, которая кодирует по JSON, и, возможно, так же после этого

извините за мой плохой английский

P/S:

Exampele: я addtion что-то вроде "бла-бла-бла", прежде чем данные JSon

bla bla bla bla bla 
myDataJson 
bla bla bla bla bla 

мое приложение будет получать выше содержание в ПАЗЕР, но уловом ошибка с «бла-бла-бла»

Как фильтр, чтобы получить только myDataJson

+0

* Почему именно браузер дает вам какие-то чтото до данных JSON? Как точно выглядят данные, можете ли вы привести пример? Получаете ли вы результат [JSONP] (http://remysharp.com/2007/10/08/what-is-jsonp/)? –

+0

У вас есть строка «skdjksdjksdj» или «ksdj» в любом месте сценария, выполненного для вывода JSON? Похоже, что «бла-бла» кто-то положил туда, чтобы доказать выполнение во время отладки. –

+0

i использование joomla cms. Если joomla выводит что-то перед моими json-данными, мое приложение не будет работать. :( – Chameron

ответ

0

Я считаю, что только решения здесь работает таким образом - ничего не выводите, но ваш JSON STRING! Вы тот, кто делает ваше приложение для вывода, как что угодно. Таким образом, вы должны иметь дело с этим :)

+0

Я использую joomla cms. Если joomla выводит что-то перед моими json-данными, мое приложение не будет работать. :( – Chameron

0

Вы можете лишить JSon, прежде чем сделать json_decode(), например ...

$json = "skdjksdjksdj{"data":"1", "data":"2", "data":"3"}" 

полосная «skdjksdjksdj», как бы вы, как может быть, как это. ..

Используйте strpos(), чтобы найти, где затем сделать substr() от этого поз до конца строки что-то вроде

substr(strpos("**{"**"), $json.length); 

, то вы можете пойти и поэтому все, например

json_decode($json, 1) 

ЭСТ

удачи!

Смежные вопросы