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

    转载:https://blog.csdn.net/oman001/article/details/79063278

    1 什么是JSON数据?

    • 先看下面,这里有一段JSON数据,我们根据这段数进行讲解:
    {
      "paramz": {
        "feeds": [
          {
            "id": 299076,
            "oid": 288340,
            "category": "article",
            "data": {
              "subject": "荔枝新闻3.0:不止是阅读",
              "summary": "江苏广电旗下资讯类手机应用“荔枝新闻”于近期推出全新升级换代的3.0版。",
              "cover": "/Attachs/Article/288340/3e8e2c397c70469f8845fad73aa38165_padmini.JPG",
              "pic": "",
              "format": "txt",
              "changed": "2015-09-22 16:01:41"
            }
          }
        ],
        "PageIndex": 1,
        "PageSize": 20,
        "TotalCount": 53521,
        "TotalPage": 2677
      }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23

    其实JSON数据就是一段字符串而已,只不过有不同意义的分隔符将其分割开来而已,我们看上面的符号,里面有[] ,{}等符号,其中

    • 1 []中括号代表的是一个数组;
    • 2 {}大括号代表的是一个对象
    • 3 双引号“”表示的是属性值
    • 4 冒号:代表的是前后之间的关系,冒号前面是属性的名称,后面是属性的值,这个值可以是基本数据类型,也可以是引用数据类型。

    2 了解了JSON数据的格式,怎么对这段数据进行解析呢?

    JSONObject系统自带的解析方式解析,我们先来JSONObject(系统自带的类)类中的方法:

    这里写图片描述

    • 上面用红框框出来的是我们手动解析最常用的方法了,好了,现在我们想要解析上面的一段数据,该怎么做呢?这里我写了一个解析类如下:
    public class JsonUtils {
    
        /**
         * 根据json数据解析返回一个List<HashMap<String, Object>>集合
         * @param json  json数据
         * @return
         */
        public static List<HashMap<String, Object>> getJsonList(String json) {
            List<HashMap<String, Object>> dataList;
            dataList = new ArrayList<>();
            try {
                JSONObject rootObject = new JSONObject(json);
                JSONObject paramzObject = rootObject.getJSONObject("paramz");
                JSONArray feedsArray = paramzObject.getJSONArray("feeds");
                for (int i = 0; i < feedsArray.length(); i++) {
                    JSONObject sonObject = feedsArray.getJSONObject(i);
                    JSONObject dataObject = sonObject.getJSONObject("data");
                    String subjectStr = dataObject.getString("subject");
                    String summaryStr = dataObject.getString("summary");
                    String coverStr = dataObject.getString("cover");
                    HashMap<String, Object> map = new HashMap<>();
                    map.put("subject", subjectStr);
                    map.put("summary", summaryStr);
                    map.put("cover", coverStr);
                    dataList.add(map);
                }
                return dataList;
            } catch (JSONException e) {
                e.printStackTrace();
            }
            return null;
        }
    }
    
  • 相关阅读:
    Java 读取大容量excel
    Linux 安装mysql
    Linux 配置nginx
    java 微信H5支付
    微信公众号授权登录两种方式
    Jsoup 获取页面返回的table中的内容
    Python Model执行迁移数据库失败
    java上传txt文件,出现中文乱码
    在Window环境下,使用Django shell 命令查询数据库
    Java模拟form表单提交普通参数和文件
  • 原文地址:https://www.cnblogs.com/qiaoli0726/p/14109776.html
Copyright © 2011-2022 走看看