我正在開發一個android應用程序,它需要一個json並獲取一組通道來從中散播。 Json是由這個非常簡單的PHP腳本生成的。無法從JSON使用getJSONArray獲取數組
<?php
$channels = [
'channels' => [
'tele5' => 'http://mset-prod-1.live-delivery.ooyala.com/out/u/3vkkbgnvsm2r5/104951/RsZXlnNTE6re1fFuFEI0UrdA2Uj7pNGM/cn/5d62490854b545598f64eaa84709400b_4.m3u8',
'divinity' => 'http://mset-prgb-2.live-delivery.ooyala.com/out/u/3vkkbgnvsm2r5/104951/IybDNyYTE6j7PZaKerX9iKFSCuctjf5B/cn/95d3fccb2d6f4ad6b09d23e7c67d3acf_4.m3u8',
'bemad' => 'http://mset-prgb-2.live-delivery.ooyala.com/out/u/3vkkbgnvsm2r5/104951/IybDNyYTE6j7PZaKerX9iKFSCuctjf5B/cn/95d3fccb2d6f4ad6b09d23e7c67d3acf_4.m3u8',
'antena3' => 'http://a3live-lh.akamaihd.net/i/[email protected]/master.m3u8'
]
];
echo json_encode($channels);
該腳本發送,我認爲,正確的JSON字符串
{
"channels":{
"tele5":"http:\/\/mset-prod-1.live-delivery.ooyala.com\/out\/u\/3vkkbgnvsm2r5\/104951\/RsZXlnNTE6re1fFuFEI0UrdA2Uj7pNGM\/cn\/5d62490854b545598f64eaa84709400b_4.m3u8",
"divinity":"http:\/\/mset-prgb-2.live-delivery.ooyala.com\/out\/u\/3vkkbgnvsm2r5\/104951\/IybDNyYTE6j7PZaKerX9iKFSCuctjf5B\/cn\/95d3fccb2d6f4ad6b09d23e7c67d3acf_4.m3u8",
"bemad":"http:\/\/mset-prgb-2.live-delivery.ooyala.com\/out\/u\/3vkkbgnvsm2r5\/104951\/IybDNyYTE6j7PZaKerX9iKFSCuctjf5B\/cn\/95d3fccb2d6f4ad6b09d23e7c67d3acf_4.m3u8",
"antena3":"http:\/\/a3live-lh.akamaihd.net\/i\/[email protected]\/master.m3u8"
}
}
我加載JSON並試圖讓和陣在這個片段中
JSONObject json = new JSONObject(response);
channels = json.getJSONArray("channels");
for (int i = 0; i < channels.length(); i++) {
JSONObject channel = channels.getJSONObject(i);
String name = channel.getString("name");
String url = channel.getString("url");
Channel ch = new Channel(name, url);
result.add(ch);
}
但功能getJSONArray投錯誤
Value {"tele5":"http:\/\/mset-prod-1.live-delivery.ooyala.com\/out\/u\/3vkkbgnvsm2r5\/104951\/RsZXlnNTE6re1fFuFEI0UrdA2Uj7pNGM\/cn\/5d62490854b545598f64eaa84709400b_4.m3u8","divinity":"http:\/\/mset-prgb-2.live-delivery.ooyala.com\/out\/u\/3vkkbgnvsm2r5\/104951\/IybDNyYTE6j7PZaKerX9iKFSCuctjf5B\/cn\/95d3fccb2d6f4ad6b09d23e7c67d3acf_4.m3u8","bemad":"http:\/\/mset-prgb-2.live-delivery.ooyala.com\/out\/u\/3vkkbgnvsm2r5\/104951\/IybDNyYTE6j7PZaKerX9iKFSCuctjf5B\/cn\/95d3fccb2d6f4ad6b09d23e7c67d3acf_4.m3u8","antena3":"http:\/\/a3live-lh.akamaihd.net\/i\/[email protected]5248\/master.m3u8"} at channels of type org.json.JSONObject cannot be converted to JSONArray
我一直在嘗試改變我的原始php數組,以便能夠解析json字符串,但沒有運氣。
我在做什麼錯?
在此先感謝。
我雖然,也許問題是PHP數組不能很好地被編碼爲一個json數組。 – Dhouard
這是真的,它實際上不是一個JSON數組。這是一個包含其他對象的對象。 –
這就是爲什麼我把它標記爲PHP問題。爲了得到一個json數組,我的php數組應該是什麼樣子? – Dhouard