一起Talk Android吧(第三百四十六回:解析JSON数组一)

各位看官们,大家好,上一回中咱们说的是Android中解析JSON对象的例子,这一回中咱们介绍的例子是解析JSON数组。闲话休提,言归正转。让我们一起Talk Android吧!

看官们,我们在前面章回中介绍了JSON数组的格式,在本章回中我们将介绍如何去解析JSONv数组,也就是把JSON数组转换成Java对象,下面是具体的操作:

  1. 使用Json字符串创建JSONArray对象;具体的操作如下:自已定义一个字符串,然后复制到AST中,这次使用的字符串如下:[{"id":11,"name":"jam","price":3.5,"path":"a/b/c"},{"id":33,"name":"Nik","price":7.6,"path":"e/a/k"}]
  2. 通过JSONArray的getJSONObject()或者optJSONObject()方法获取数组中的JSON对象,这些方法的参数是JSON数组的索引值;
  3. 获取JSON对象后还需要解析对象,解析方法参考上一章回的内容。

下是具体的示代码,请大家参考:

 private void parseJsonArrayByJavaNative() {
       String jsonArrayString = "[{\"id\":11,\"name\":\"jam\",\"price\":3.5,\"path\":\"a/b/c\"},{\"id\":33,\"name\":\"Nik\",\"price\":7.6,\"path\":\"e/a/k\"}]";

       List<JsonBeanType> list = new ArrayList<>();
       try {
           JSONArray jsonArray = new JSONArray(jsonArrayString);
           JSONObject jsonObject;

           for(int i=0; i<jsonArray.length(); ++i) {
               jsonObject = jsonArray.optJSONObject(i);
               if(jsonObject != null) {
                   JsonBeanType jsonBeanObject = new JsonBeanType();
                   jsonBeanObject.setId(jsonObject.optInt("id"));
                   jsonBeanObject.setName(jsonObject.optString("name"));
                   jsonBeanObject.setPrice(jsonObject.optDouble("price"));
                   jsonBeanObject.setPath(jsonObject.getString("path"));
                   list.add(jsonBeanObject);
               }
           }
       } catch (JSONException e) {
           e.printStackTrace();
       }
       Log.d(TAG, "parseJsonArrayByJavaNative: "+list.toString());
   }

上面程序中的JsonBeanType在上一章回中介绍过,这里不再列出。程序中使用的JSON数组包含两个JSON对象,它们将会被解析成两个Java对象,因此我们创建了一个List来存放这两个Java对象。
把上面的程序放到Android的工程中,然后添加到Button的监听器里,编译程序并且点击Button就可以看到以下运行结果 :

parseJsonArrayByJavaNative: [JsonBeanType{id=11, name='jam', price=3.5, path='a/b/c'}, JsonBeanType{id=33, name='Nik', price=7.6, path='e/a/k'}]

看官们,关于Android中解析JSON数组的例子咱们就介绍到这里,欲知后面还有什么例子,且听下回分解!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

talk_8

真诚赞赏,手有余香

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值