JSON

JSON:JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式

两种结构:

单条JSON数据:JSONObject:JSON的基本单元
多条 JSONarray数据
### 展现形式:1.{}
2.以键值对形式组成
3. 键必须包裹一对双引号
4.多个键值对要以逗号隔开

解析JSONObject

写一个方法,把JSON数据转译成字符串形式,直接把JSNO数据用引号括起来,会自动转化成字符串形式

private void get2JSON() {
        String str2 = "{\"name\":\"张三\",\"age\":21,\"info\":{\"class\":\"三年一班\",\"id\":2016001}}\n";
        try {
        //创建JSONObject对象,把转义的JSNO数据放进去
            JSONObject jsonobject = new JSONObject(str2);
            //用getString得到字符串形式的键
            String name = jsonobject.getString("name");
            int age = jsonobject.getInt("age");
            //
            JSONObject INFO = jsonobject.getJSONObject("info");
            String className = INFO.getString("class");
            int id = INFO.getInt("id");
            name_tvjson.setText(name);
            age_tvjson.setText(age + "");
            classname_tvjson.setText(className);
            id_tvjson.setText(id + "");
        } catch (JSONException e) {
            e.printStackTrace();
        }
    }

解析JSONarray的案例

 private void getJSONarray1() {
        String str = "[ {\"name\":\"张三\",\"age\":21,\"info\":{\"class\":\"三年一班\",\"id\":2016001}}, {\"name\":\"李四\",\"age\":22,\"info\":{\"class\":\"三年二班\",\"id\":2016002}}]\n";
        try {
        //创建JSONArray对象放JSONArray数组数据
            JSONArray jsnoarray = new JSONArray(str);
           //创建JSONObject对象
            JSONObject obja = jsnoarray.getJSONObject(0);//这里的0是游标位置的0
            String name = obja.getString("name");
            int age = obja.getInt("age");
            name_tv.setText(name);
            age_tv.setText(age + "");


        //创建一个新的JSONObject对象 ,通过obja.getJSONObject("info")得到嵌套的数据
            JSONObject obj1 = obja.getJSONObject("info");
            String className = obj1.getString("class");
            int id = obj1.getInt("id");
            classname_tv.setText(className);
            id_tv.setText(id + "");

               //
            JSONObject objb = jsnoarray.getJSONObject(1);
            String name1 = objb.getString("name");
            int age1 = objb.getInt("age");

            name1_tv.setText(name1);
            age1_tv.setText(age1 + "");

            JSONObject obj2 = objb.getJSONObject("info");
            String className1 = obj2.getString("class");
            int id1 = obj2.getInt("id");

            classname1_tv.setText(className1);
            id1_tv.setText(id1 + "");

        } catch (JSONException e) {
            e.printStackTrace();
        }


    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值