2011-08-03 37 views
5

可能重複:
Extract JSONP Resultset in PHP如何使用PHP解析JSONP

我得到以下格式的響應。我面臨着如何進入「插件」變量和訪問裏面的其他變量的麻煩。我使用json_decode(),但我無法訪問變量。

Plugin 
(
{ 

"plugin_a":"abc", 
"plugin_b":"abc", 
"plugin_c":"abc" 
} 
) 

我試圖

$a = json_decode($json,true); 
echo $a['plugin_a']; 

我沒有得到任何輸出。

echo var_dump($json);給我

string 'Plugin({ 
    "plugin_a":"abc", 
    "plugin_b":"abc", 
    "plugin_ce":"abc" })' 
+1

你試過var_dump($ a)嗎? – Zaffy

+1

這不是有效的JSON ... –

+0

感謝大家的快速回應...這個代碼由問題解決http://codepad.org/eJXeaXIO – simplyblue

回答

0

嘗試SUBSTR();

http://sandbox.phpcode.eu/g/40c20.php

<?php 
$json = substr('Plugin 
(
{ 

"plugin_a":"abc", 
"plugin_b":"abc", 
"plugin_c":"abc" 
} 
)', 9, -1); 

print_r(json_decode($json)); 
+3

更普遍的做法是preg_match之間的一切開幕(和最後關閉)。 – Gordon

+0

謝謝...這段代碼解決了我的問題。 http://codepad.org/eJXeaXIO – simplyblue

0

也許這會爲你工作:

$data=array('plugin_a'=>'abc','plugin_b'=>'bcd','plugin_c'=>'cde'); 
$json='{"Plugin":'.json_encode($data).'}'; 
$a=json_decode($json,true); 
echo $a['Plugin']['plugin_a']; 

看來好像實際的JSON數組可能不具備完整性。如果這個解決方案不適合,你可以發佈實際構建json數組的代碼嗎?