2010-06-11 1 views
0

로 디코딩 JSON을 도와 드릴까요 :

cbfunc({"query":{"count":"12","created":"2010-06-11T01:20:19Z","lang":"en-US"},"results":["\n 238.l.739089.t.4<\/team_key>\n 4<\/team_id>\n CHEE-HOO!!!<\/name>"]}); 

그것은 나에게 JSON처럼 보이는, 그래서 내가 사용하려고했습니다 json_decode하지만 제대로 이해할 수는 없습니다. 내 목표는 "결과"에서 발견 된 XML 데이터를 인쇄하는 것입니다.

유용한 포인터는 크게 감사하겠습니다.

+1

이 JSONP 인 JSON (패딩). –

+0

일반 XML 또는 일반 JSON이 아닌 YQL에서 JSONP-X 응답을받는 이유가 있습니까? – salathe

+0

@salathe 왜 나는 그 반응을 얻고 있는지 확신 할 수 없다. 내 yql 호출 http://github.com/joechung/oauth_yahoo 사용하고 있습니다. 하지만, 당신은 yql을 알기에 매우 예리한 시선을 가지고 있습니다! :) – brant

답변

1

감사합니다, 나는 해결책

을 알아 냈 등 comment on the json function at PHP에 따라 JSONP 패딩없이 (JSON으로 변환 할 필요가있다, 또한이 경우 -2로 변경합니다.)를 편리한 preg_replac을 통해 E는 ...

$var=preg_replace('/.+?({.+}).+/','$1',$var); 

그리고, JSON 결과 데이터를 인쇄하기 위해 분석 될 수

$obj = json_decode($var, true); 
print $obj["results"][0]; 
1

콜백 cbfunc에 싸인 것 같습니다. 그래서 당신은 json_decode를 실행하기 전에 그것을 제거해야한다.

당신은에서 responseText의 끝을 표시하지 않습니다하지만 위의 코드 조각은 당신에게 콜백의 시작 'cbfunc ('마지막 문자, 독점 사이의 모든 것을 제공한다

$decode_this = substr($var, 6, -1); 

을 시도해보십시오. 당신은 할 수 있습니다 . ZZ 코더의 반응에

+0

답장을 보내 주셔서 감사합니다. 나는 네가 제안한 것을 시도했지만 여전히 운이 없었다. JSONP를 JSON으로 변환하는 솔루션을 찾았지 만 $ var = preg_replace ('/.+?({.+}).+/',$$ 1', $ var); – brant

관련 문제