使用FastJson解析Json数据

    xiaoxiao2021-03-25  80

    fastjson 是一个性能极好的用 Java 语言实现的 JSON 解析器和生成器,来自 阿里巴巴的工程师开发。

    主要特点:

    快速FAST (比其它任何基于Java的解析器和生成器更快,包括jackson)

    强大(支持普通JDK类包括任意Java Bean Class、Collection、Map、Date或enum)

    零依赖(没有依赖其它任何类库除了JDK)

    一 、生成Json: JavaBean、List<JavaBean>、List<String>、List<Map<String,Object>> [java]  view plain  copy   String jsonString = JSON.toJSONString(obj);   二、解析Json: (1)JavaBean [java]  view plain  copy   Class class= JSON.parseObject(jsonString, Class.class);   (2)List<JavaBean> [java]  view plain  copy   List<Class> class=JSON.parseArray((jsonString, Class.class);   (3)List<String> [java]  view plain  copy   List<String> listString = JSON.parseArray(jsonString, String.class);   (4)List< Map<String,Object> > [java]  view plain  copy   List<Map<String, Object>> listMap = JSON.parseObject(jsonString, new TypeReference<List<Map<String,Object>>>(){});   现有这样的json数据: [javascript]  view plain  copy   {"totalRecords":2615,   [javascript]  view plain  copy   "result":{"code":"200","status":"success"},   "list":[{"unuAbnId":"0bcd930f-014c-1000-e003-5f160a0d0114",   "entNo":"1c2e4ca8-00fa-1000-e000-74590a76bf0f",   "regNO":"442000600169663",   "entName":"x",   "entType":"9910  ",   "speCause":"3",   "abnTime":"Mar 13, 2015 12:00:00 AM",   "decOrg":"442020",   "entNameUrl":"<a href=\".. ",   "auditingFileNo":"15000684990326",   "abnormalID":"fd74013d-014b-1000-e00a-72970a0d0114"},{...},{...},...],   "pageNo":1,   "pageSize":8,   "url":"main/abnInfoPage",   "selList":[{"unuAbnId":"0bcd930f-014c-1000-e003-5f0f0a0d0114",   "entNo":"16da9629-0131-1000-e005-3effc0a803a8",   "regNO":"442000602187424",   "entName":"x",   "entType":"9910  ",   "speCause":"3",   "abnTime":"Mar 13, 2015 12:00:00 AM",   "decOrg":"442020",   "entNameUrl":"<a href=\"..\">",   "auditingFileNo":"15000684990319",   "abnormalID":"fd74013d-014b-1000-e00a-72970a0d0114"},{...},{...},...],   "topPageNo":1,   "totalPages":327,   "previousPageNo":0,   "nextPageNo":2,   "bottomPageNo":327   }   其中list含有2615条数据,selList含有8条数据,目标是提取selList中entNameUrl的链接(不含a href=)  外层是JSONObject,里面的list和selList是JSONArrary,再里面是JSONObject。其中的result也是JSONObject [java]  view plain  copy   JSONObject jsonObj = JSON.parseObject(rawText);   JSONArray result = jsonObj.getJSONArray("selList");   List<Link> links= JSON.parseArray(result.toJSONString(),Link.class);   其中Link类中要有entNameUrl这个属性,并且setter和getter方法。 在setter方法中可以进一步进行处理 [java]  view plain  copy    public void setEntNameUrl(String entNameUrl) {        this.entNameUrl =Html.create(entNameUrl).links().get();   }   这里使用了自定方法,其功能就是取出字符串中的链接。 Link类中可以包含abnTime、entName、regNO等属性和对应的getter和setter方法,FastJson能自动映射。 通过下面的方法也可以处理: [java]  view plain  copy   JSONObject jsonObj = new JSONObject(rawText);   JSONArray jsonArray = result .getJSONArray("selList");   for (int i = 0; i < jsonArray.length; i++) {      
    转载请注明原文地址: https://ju.6miu.com/read-38573.html

    最新回复(0)