三级JSON解析

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();
	}
}


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值