我真的很努力地用PHP解析JSON字符串。下面的链接包含我试图解析的JSON:http://finance.google.com/finance/info?client=ig&q=NASDAQ:MSFT,NASDAQ:GOOG,NASDAQ:AAPL在PHP中解析JSON
任何人都可以帮助,我已经尝试了一切,但我仍然对此感到陌生。
谢谢。
我真的很努力地用PHP解析JSON字符串。下面的链接包含我试图解析的JSON:http://finance.google.com/finance/info?client=ig&q=NASDAQ:MSFT,NASDAQ:GOOG,NASDAQ:AAPL在PHP中解析JSON
任何人都可以帮助,我已经尝试了一切,但我仍然对此感到陌生。
谢谢。
如果没有//
字符串的开始使用
$json_data = '[ { "id": "358464" ,"t" : "MSFT" ,"e" : "NASDAQ" ,"l" : "25.80" ,"l_cur" : "25.80" ,"s": "1" ,"ltt":"4:00PM EDT" ,"lt" : "Sep 2, 4:00PM EDT" ,"c" : "-0.41" ,"cp" : "-1.56" ,"ccol" : "chr" ,"el": "25.44" ,"el_cur": "25.44" ,"elt" : "Sep 6, 4:35AM EDT" ,"ec" : "-0.36" ,"ecp" : "-1.40" ,"eccol" : "chr" ,"div" : "0.16" ,"yld" : "2.48" } ,{ "id": "694653" ,"t" : "GOOG" ,"e" : "NASDAQ" ,"l" : "524.84" ,"l_cur" : "524.84" ,"s": "0" ,"ltt":"4:00PM EDT" ,"lt" : "Sep 2, 4:00PM EDT" ,"c" : "-7.66" ,"cp" : "-1.44" ,"ccol" : "chr" } ,{ "id": "22144" ,"t" : "AAPL" ,"e" : "NASDAQ" ,"l" : "374.05" ,"l_cur" : "374.05" ,"s": "1" ,"ltt":"4:00PM EDT" ,"lt" : "Sep 2, 4:00PM EDT" ,"c" : "-6.98" ,"cp" : "-1.83" ,"ccol" : "chr" ,"el": "371.45" ,"el_cur": "371.45" ,"elt" : "Sep 6, 6:02AM EDT" ,"ec" : "-2.60" ,"ecp" : "-0.70" ,"eccol" : "chr" ,"div" : "" ,"yld" : "" } ]';
$json_object = json_decode($json_data);
与//
使用
$json_data = '......';
$json_data = trim(substr($json_data,2));
$json_object = json_decode($json_data);
结果
array (
0 =>
stdClass::__set_state(array(
'id' => '358464',
't' => 'MSFT',
'e' => 'NASDAQ',
'l' => '25.80',
'l_cur' => '25.80',
's' => '1',
'ltt' => '4:00PM EDT',
'lt' => 'Sep 2, 4:00PM EDT',
'c' => '-0.41',
'cp' => '-1.56',
'ccol' => 'chr',
'el' => '25.44',
'el_cur' => '25.44',
'elt' => 'Sep 6, 4:35AM EDT',
'ec' => '-0.36',
'ecp' => '-1.40',
'eccol' => 'chr',
'div' => '0.16',
'yld' => '2.48',
)),
1 =>
stdClass::__set_state(array(
'id' => '694653',
't' => 'GOOG',
'e' => 'NASDAQ',
'l' => '524.84',
'l_cur' => '524.84',
's' => '0',
'ltt' => '4:00PM EDT',
'lt' => 'Sep 2, 4:00PM EDT',
'c' => '-7.66',
'cp' => '-1.44',
'ccol' => 'chr',
)),
2 =>
stdClass::__set_state(array(
'id' => '22144',
't' => 'AAPL',
'e' => 'NASDAQ',
'l' => '374.05',
'l_cur' => '374.05',
's' => '1',
'ltt' => '4:00PM EDT',
'lt' => 'Sep 2, 4:00PM EDT',
'c' => '-6.98',
'cp' => '-1.83',
'ccol' => 'chr',
'el' => '371.45',
'el_cur' => '371.45',
'elt' => 'Sep 6, 6:02AM EDT',
'ec' => '-2.60',
'ecp' => '-0.70',
'eccol' => 'chr',
'div' => '',
'yld' => '',
)),
)
json_decode
文档:http://php.net/json_decode
在您的源代码中,他们正在评论JSON。他们这样做很奇怪,但无论如何,//在一开始就把它搞砸了。
$url = 'http://finance.google.com/finance/info?client=ig&q=NASDAQ:MSFT,NASDAQ:GOOG,NASDAQ:AAPL';
$json = preg_replace('#^\s+//#', '', file_get_contents($url));
$decoded = json_decode($json);
var_dump($decoded);
使用'preg_replace',其中'substr($ json_data,2)'就足够了,似乎有点超载... – feeela
你会想你会不会?但事实并非如此。 trim()是一个多余的功能。 –
正则表达式 - 使用它或松动它:) –
http://php.net/json_decode –
你试过了什么?你看这里http://www.php.net/manual/en/function.json-decode.php – wgcrouch
http://php.net/json_decode,你应该剪掉内容的前两个或三个字符第一。 – choise