JSON数据如下:
{ "packages": { "package": [ { "icon": "test.png", "icon_vod": "test.jpg", "name": "Arabic", "id": "1", "status": "1" }, { "icon": "test.png", "icon_vod": "test.jpg", "name": "UK", "id": "5", "status": "1" }, { "icon": "test.png", "icon_vod": "test.jpg", "name": "Sport", "id": "3", "status": "1" }, { "icon": "test.png", "icon_vod": "test.jpg", "name": "Afghan", "id": "43", "status": "1" }, { "icon": "test.png", "icon_vod": "test.jpg", "name": "Turkish", "id": "6", "status": "1" }, { "icon": "test.png", "icon_vod": "test.jpg", "name": "France", "id": "7", "status": "1" }, { "icon": "test.png", "icon_vod": "test.jpg", "name": "Iran", "id": "8", "status": "1" }, { "icon": "test.png", "icon_vod": "test.jpg", "name": "Russian", "id": "18", "status": "1" }, { "icon": "test.png", "icon_vod": "test.jpg", "name": "African", "id": "13", "status": "1" }, { "icon": "test.png", "icon_vod": "test.jpg", "name": "Kurdish", "id": "14", "status": "1" }, { "icon": "test.png", "icon_vod": "test.jpg", "name": "Spain", "id": "20", "status": "1" }, { "icon": "test.png", "icon_vod": "test.jpg", "name": "Gorgia", "id": "31", "status": "1" }, { "icon": "test.png", "icon_vod": "test.jpg", "name": "Germany", "id": "24", "status": "1" }, { "icon": "test.png", "icon_vod": "test.jpg", "name": "OSN", "id": "25", "status": "1" }, { "icon": "test.png", "icon_vod": "test.jpg", "name": "Switzerland", "id": "42", "status": "1" }, { "icon": "test.png", "icon_vod": "test.jpg", "name": "Belgium", "id": "30", "status": "1" }, { "icon": "test.png", "icon_vod": "test.jpg", "name": "Portugal", "id": "32", "status": "1" }, { "icon": "test.png", "icon_vod": "test.jpg", "name": "Poland", "id": "33", "status": "1" }, { "icon": "test.png", "icon_vod": "test.jpg", "name": "Asia", "id": "35", "status": "1" }, { "icon": "test.png", "icon_vod": "test.jpg", "name": "Azerbaijan", "id": "36", "status": "1" }, { "icon": "test.png", "icon_vod": "test.jpg", "name": "Chile", "id": "37", "status": "1" }, { "icon": "test.png", "icon_vod": "test.jpg", "name": "Italian", "id": "41", "status": "1" }, { "icon": "test.png", "icon_vod": "test.jpg", "name": "Greece", "id": "40", "status": "1" }, { "icon": "test.png", "icon_vod": "test.jpg", "name": "Amoos", "id": "44", "status": "1" }, { "icon": "test.png", "icon_vod": "test.jpg", "name": "Bulgarian", "id": "45", "status": "1" }, { "icon": "test.png", "icon_vod": "test.jpg", "name": "Indian", "id": "47", "status": "1" }, { "icon": "test.png", "icon_vod": "test.jpg", "name": "Pakistan", "id": "48", "status": "1" }, { "icon": "test.png", "icon_vod": "test.jpg", "name": "Latino", "id": "50", "status": "1" }, { "icon": "test.png", "icon_vod": "test.jpg", "name": "Croatien", "id": "52", "status": "1" }, { "icon": "test.png", "icon_vod": "test.jpg", "name": "Bosnien", "id": "53", "status": "1" }, { "icon": "test.png", "icon_vod": "test.jpg", "name": "Macedonia", "id": "54", "status": "1" }, { "icon": "test.png", "icon_vod": "test.jpg", "name": "Slovenia", "id": "55", "status": "1" }, { "icon": "test.png", "icon_vod": "test.jpg", "name": "Romania", "id": "59", "status": "1" }, { "icon": "test.png", "icon_vod": "test.jpg", "name": "Hungary", "id": "58", "status": "1" } ] } }
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import org.apache.http.client.ClientProtocolException;
import org.json.JSONArray;
import org.json.JSONObject;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
public class MainActivity extends Activity {
private static final String TAG = "MainActivity";
private String mURL = "http://stable-iptv.com/v1/data?pin=5498885292219241&sn=231423&mac=08:00:27:88:de:0f&req=pack";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
new Thread(new Runnable() {
@Override
public void run() {
try {
requestRemoteServerForUpdate(new URL(mURL));
} catch (Exception e) {
e.printStackTrace();
}
}
}).start();
}
private boolean requestRemoteServerForUpdate(URL remote) throws IOException, ClientProtocolException{
if(remote == null) {
return false;
}
HttpURLConnection urlConn = (HttpURLConnection) remote.openConnection();
urlConn.setConnectTimeout(5 * 1000);
urlConn.connect();
if (urlConn.getResponseCode() == HttpURLConnection.HTTP_OK) {
try {
byte[] jsonData = toByteArray(urlConn.getInputStream());
String json = new String(jsonData);
//解析第一级packages
JSONObject jsonObject1 = new JSONObject(json);
String packages = jsonObject1.getString("packages");
String content = "DATE_111 : "+packages;
Log.d(TAG, content);
//解析第二级package
JSONObject jsonObject2 = new JSONObject(packages);
String _package = jsonObject2.getString("package");
String contnet1 = "DATE_222 : "+_package;
Log.d(TAG, contnet1);
//解析三级JSON数据
JSONArray jsonArray = new JSONArray(_package);
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject jsonObject3 = jsonArray.getJSONObject(i);
String icon = jsonObject3.getString("icon");
String icon_vod = jsonObject3.getString("icon_vod");
String name = jsonObject3.getString("name");
String id = jsonObject3.getString("id");
String status = jsonObject3.getString("status");
Log.d(TAG, "DATE_333_"+i+" : icon:"+icon+",icon_vod:"+icon_vod+",name:"+name+",id:"+id+",status:"+status);
}
} catch (Exception e) {
e.printStackTrace();
}
} else {
Log.d(TAG,"Get Response Code failed");
}
urlConn.disconnect();
return true;
}
private byte[] toByteArray(InputStream input) throws IOException {
ByteArrayOutputStream output = new ByteArrayOutputStream();
byte[] buffer = new byte[4096];
int n = 0;
while (-1 != (n = input.read(buffer))) {
output.write(buffer, 0, n);
}
return output.toByteArray();
}
}