zoukankan      html  css  js  c++  java
  • Android 解析JSON格式数据

    比起XML,JSON主要优势在于它的体积更小,在网络上传输的时候可以更省流量。但缺点在于,它的语义性较差,显示不如XML直观。

    JSON格式 :  { "name_A" : "value_A","name_B" : "value_B" }

    表示:name_A = value_A;  name_B = value_B;

    我将对下面的JSON数据进行解析:

    [{"id":"5","version":"5.5","name":"愤怒的小鸟"},
    {"id":"6","version":"7.0","name":"神庙逃亡"},
    {"id":"7","version":"3.5","name":"保卫萝卜"}]
    

    代码如下:

        private void parseJSONWithJSONObject(String jsonData) {
            try {
    
                JSONArray jsonArray = new JSONArray(jsonData);
                for (int i = 0; i < jsonArray.length(); i++) {
                    JSONObject jsonObject = jsonArray.getJSONObject(i);
    String id
    = jsonObject.getString("id"); String name = jsonObject.getString("name"); String version = jsonObject.getString("version"); Log.d("woider", "id is " + id); Log.d("woider", "name is " + name); Log.d("woider", "version is " + version); } } catch (Exception e) { e.printStackTrace(); } }

    首先获取JSON元素数组:JSONArray jsonArray = new JSONArray(jsonData);

    其次循环获取每个元素:JSONObject jsonObject = jsonArray.getJSONObject(index);

    每次循环保存名称相对应的值:String name = jsonObject.getString("name");

    ======================使用GSON========================

    GSON是谷歌提供的一个API,它主要就是可以将一段JSON格式的字符串自动映射成一个对象,从而不需要手动编码进行解析。

    但是GSON并没有被添加到Android官方的API中,因此如果需要使用这个功能的话,则必须在项目中添加一个GSON的Jar包。

    首先要建立一个类容纳JSON中的数据,然后实例化 Gson 对象,并通过 fromJson() 方法获取JSON对象集合。

        private void parseJSONWithGSON(String jsonData) {
            Gson gson = new Gson();
            List<App> appList = gson.fromJson(jsonData, new TypeToken<List<App>>() {
            }.getType());
            
            for (App app : appList) {
                Log.d("woider", "id is " + app.getId());
                Log.d("woider", "name is " + app.getName());
                Log.d("woider", "version is " + app.getVersion());
            }
        }

    最后,补上运行截图:

  • 相关阅读:
    命令模式
    装饰者模式
    迭代器模式-统一集合的遍历方式
    springboot源码解析-管中窥豹系列之总体结构
    启动项目tomcat报错
    在项目中部署redis的读写分离架构(包含节点间认证口令)
    Redis的几个核心机制底层原理
    Java内存模型
    JAVA原子组件和同步组件
    DataGrid 删除一行数据
  • 原文地址:https://www.cnblogs.com/woider/p/5324722.html
Copyright © 2011-2022 走看看