2011-08-03 20 views
5

Powiel możliwe:
Extract JSONP Resultset in PHPJak analizować jsonp PHP

uzyskać odpowiedź w następującym formacie. Mam problem z dostaniem się do zmiennej "Plugin" i dostępem do innych zmiennych w niej. Użyłem json_decode(), ale nie mogę uzyskać dostępu do zmiennych.

Plugin 
(
{ 

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

Próbowałem

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

I nie dostać żadnych wyników.

echo var_dump($json); daje mi

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

czy próbowałeś var_dump ($ a)? – Zaffy

+1

To nie jest ważne JSON ... –

+0

Dziękuję wszystkim za szybką odpowiedź ... ten kod rozwiązany przez problem http://codepad.org/eJXeaXIO – simplyblue

Odpowiedz

0

try 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

bardziej ogólne podejście byłoby preg_match wszystko między pierwszym otwarciem (i ostatnim zamknięciem). – Gordon

+0

Dzięki ... ten kod rozwiązał mój problem. http://codepad.org/eJXeaXIO – simplyblue

0

Może to będzie pracować dla Ciebie:

$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']; 

Wydaje się, że rzeczywista tablica json może nie mieć integralność. Jeśli to rozwiązanie nie pasuje, czy możesz opublikować kod, który faktycznie buduje tablicę json?