Android Studio JSON数据的初始化与解析访问 (JSON对象、JSON数组)

        Android Studio中有JSONObject和JSONArray两种数据结构。JSONObject是数据对象,是下图展示的类型。即一个{}中有若干个属性和属性对应的值。

JSONArray是json数组。为如下的形式。一个[]中有若干个JSON对象,可看做数组的元素。

一、Json的初始化

        如果要初始化一个Json对象,逐次使用JSONObject.put()函数即可。函数的第一个参数为属性名,第二个参数为属性的值。一个Json对象中如有多个属性,对一个Json对象连续使用若干次JSONObject.put()函数即可。

JSONObject json1 = new JSONObject();
JSONObject json2 = new JSONObject();
try {
    json2.put("2", 2);
    json2.put("3", 3);
    json1.put("one", "xxx");
    json1.put("two", "yyy");
    json1.put("four", json2);
} catch (JSONException e) {
    e.printStackTrace();
}
Log.e("结果",json1.toString());//以字符串形式输出

        执行上面的代码初始化JSON变量,可以发现JSON1的结果如下所示。json对象中某个元素对应的值可以是数字、字符串,也可以是JSON变量。

         JSON数组可以看做是一个数组,数组的元素是JSON对象。因此JSON数组的初始化方法类似。先用上述方法初始化每个json对象。再初始化一个新的JSON数组,用JSONArray.put()函数把前面初始化的JSON对象压入数组。

        以下面的代码为例:

JSONObject json0 = new JSONObject();//json对象(数组元素)
JSONObject json1 = new JSONObject();//json对象(数组元素)
JSONArray json = new JSONArray();//json数组
try {
    json0.put("2", 2);
    json0.put("3", 3);//初始化元素0的json变量

    json1.put("one", "xxx");
    json1.put("two", "yyy");
    json1.put("four", json0);//初始化元素1的json变量

    json.put(json0);//元素0压入数组
    json.put(json1);//元素1压入数组
} catch (JSONException e) {
    e.printStackTrace();
}
Log.e("结果",json.toString());//字符串形式输出

         执行后JSON数组的值如下,有两个数组元素,每个数组元素都是JSON对象。

 二、JSON的访问

        JSON型是数据,无论是JSON对象还是JSON数组,都可以转化为字符串的形式。前面的输出均通过JsonObject/JsonArray.toString(),将JSON转化为了字符串。

        如果想对JSON对象的某个确定的属性或元素进行访问,可以使用getJSONObject()getString()函数实现。getJSONObject可以获取json对象中某个特定属性对应的json对象,参数为属性名。getString()可以获取json对象中某个特定属性对应的字符串,参数也为属性名。

        在使用时要理清JSON对象的结构,确定需要提取的内容是数据元素还是JSON对象。以这个JSON对象为例。想要访问到属性为“four”对应的这个JSON对象中属性为”2“的这个元素,需要使用的代码如下,为JSONObject.getJSONObject("four").getString("2"):

try {
      Log.e("结果",json1.getJSONObject("four").getString("2").toString());
     } catch (JSONException e) {
            e.printStackTrace();
     }

        对JSON数组进行访问的时候,可以先使用getJSONObject()函数提取某一个数组元素,括号中的参数为元素序号(数组下标),再使用上面访问JSON对象的方法。以下面这个json数组为例:

        使用下面的代码对上面的json数组进行操作,会访问到(输出)第0个数组元素,即一个json对象。注意,下面的代码:json.getJSONObject(0)已经提取出json对象了,toString()只是用于将JSON对象转化为字符串,用于输出。

try {
            Log.e("结果",json.getJSONObject(0).toString());
        } catch (JSONException e) {
            e.printStackTrace();
        }//json.getJSONObject(0)以及提取出json对象了,toString()只是用于转化为字符串,用于输出

三、总结

        1.常用的关于操作JSON数据类型的函数:put()、getJSONObject()、getString()。

        2.JSON数据类型通过上述方法进行提取后,数据类型全部变成了字符串,需要转化回原来的数据类型。

        3.使用JSON型数据的各项操作时需要使用一系列异常处理,在Android Studio中均予以了提示,按照系统提示操作即可。

  • 5
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值