1.导包

 implementation 'com.google.code.gson:gson:2.8.6'implementation 'com.alibaba:fastjson:1.2.73'

2.使用

package com.example.imageloader2;import androidx.appcompat.app.AppCompatActivity;
import android.annotation.SuppressLint;
import android.os.Bundle;
import android.util.Log;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.widget.LinearLayout;import com.alibaba.fastjson.JSON;
import com.google.gson.Gson;
import com.google.gson.JsonObject;import org.json.JSONObject;import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;public class ThirdActivity extends AppCompatActivity {private static final String TAG = "ThirdActivity";private LinearLayout linearLayout;String data = "{\n" +"  \"paramz\": {\n" +"    \"feeds\": [\n" +"      {\n" +"        \"id\": 299076,\n" +"        \"oid\": 288340,\n" +"        \"category\": \"article\",\n" +"        \"data\": {\n" +"          \"subject\": \"荔枝新闻3.0:不止是阅读\",\n" +"          \"summary\": \"江苏广电旗下资讯类手机应用“荔枝新闻”于近期推出全新升级换代的3.0版。\",\n" +"          \"cover\": \"/Attachs/Article/288340/3e8e2c397c70469f8845fad73aa38165_padmini.JPG\",\n" +"          \"pic\": \"\",\n" +"          \"format\": \"txt\",\n" +"          \"changed\": \"2015-09-22 16:01:41\"\n" +"        }\n" +"      }\n" +"    ],\n" +"    \"PageIndex\": 1,\n" +"    \"PageSize\": 20,\n" +"    \"TotalCount\": 53521,\n" +"    \"TotalPage\": 2677\n" +"  }\n" +"}\n";String data2 = "{\n" +"    \"homeadlist\": [\n" +"        {\n" +"            \"id\": 1,\n" +"            \"imgurl\": \"/img/homead/a73b3f1d-0f14-429d-9d0f-70643fb0f0eb.jpg\",\n" +"            \"jumpflag\": 0,\n" +"            \"jumpurl\": \"\",\n" +"            \"posflag\": 1,\n" +"            \"remark\": \"1111\",\n" +"            \"cityid\": 1\n" +"        },\n" +"        {\n" +"            \"id\": 12,\n" +"            \"imgurl\": \"/img/homead/eb442fbf-49db-4ba6-a102-d781505f426d.jpg\",\n" +"            \"jumpflag\": 0,\n" +"            \"jumpurl\": \"\",\n" +"            \"posflag\": 2,\n" +"            \"remark\": \"\",\n" +"            \"cityid\": 1\n" +"        },\n" +"        {\n" +"            \"id\": 14,\n" +"            \"imgurl\": \"/img/homead/68109460-635d-4c5c-8be8-64d7c7889d18.jpg\",\n" +"            \"jumpflag\": 0,\n" +"            \"jumpurl\": \"http://shiranlife.kuaizhan.com/\",\n" +"            \"posflag\": 4,\n" +"            \"remark\": \"\",\n" +"            \"cityid\": 1\n" +"        }\n" +"    ]\n" +"}\n";@SuppressLint("SetJavaScriptEnabled")@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);linearLayout = new LinearLayout(this);WebView webView = new WebView(this);WebSettings settings = webView.getSettings();//让webView支持JSsettings.setJavaScriptEnabled(true);//加载百度网页webView.loadUrl("https://www.baidu.com");LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT);lp.setMargins(50, 50, 50, 50);webView.setLayoutParams(lp);linearLayout.addView(webView);setContentView(linearLayout);List<HashMap<String, Object>> dataList = JsonUtils.getJsonList(data);for(HashMap map : dataList) {Log.d(TAG, "subject:"+map.get("subject")+", summary:"+ map.get("summary")+", cover:"+ map.get("cover"));}List<DataModel> dataList2 =  JsonUtils.getJsonList2(data);for(DataModel model : dataList2) {Log.d(TAG, "22---subject:"+model.getSubject()+", summary:"+ model.getSummary()+", cover:"+ model.getCover());}//Gson解析Homead homead = new Gson().fromJson(data2, Homead.class);Log.d(TAG, "size-333:"+homead.getHomeadlist().size());for(Homead.HomeadlistBean bean : homead.getHomeadlist()) {Log.d(TAG, "getId:"+ bean.getId());}//fastJson解析Homead homead2 = JSON.parseObject(data2, Homead.class);Log.d(TAG, "size-444:"+homead.getHomeadlist().size());for(Homead.HomeadlistBean bean : homead.getHomeadlist()) {Log.d(TAG, "getId---222:"+ bean.getId());}Homead.HomeadlistBean bean1 = new Homead.HomeadlistBean(1, "q");Homead.HomeadlistBean bean2 = new Homead.HomeadlistBean(2, "w");Homead.HomeadlistBean bean3 = new Homead.HomeadlistBean(3, "e");Homead.HomeadlistBean bean4 = new Homead.HomeadlistBean(4, "r");List<Homead.HomeadlistBean> homeadlist  = new ArrayList<>();homeadlist.add(bean1);homeadlist.add(bean2);homeadlist.add(bean3);homeadlist.add(bean4);Homead homead1 = new Homead();homead1.setHomeadlist(homeadlist);String h = JSON.toJSONString(homead1);Log.d(TAG, "h---555:"+ h);}
}

3.解析类
1)DataModel

package com.example.imageloader2;public class DataModel{public  String subject;public  String summary;public  String cover;public  String pic;public  String format;public  String changed;public void setSubject(String subject) {this.subject = subject;}public String getSubject() {return subject;}public void setSummary(String summary) {this.summary = summary;}public String getSummary() {return summary;}public void setCover(String cover) {this.cover = cover;}public String getCover() {return cover;}public void setPic(String pic) {this.pic = pic;}public String getPic() {return pic;}public void setFormat(String format) {this.format = format;}public String getFormat() {return format;}public void setChanged(String changed) {this.changed = changed;}public String getChanged() {return changed;}}

2)Homead

package com.example.imageloader2;import java.io.Serializable;
import java.util.List;public class Homead {public List<HomeadlistBean> getHomeadlist() {return homeadlist;}private List<HomeadlistBean> homeadlist;public void setHomeadlist(List<HomeadlistBean> homeadlist) {this.homeadlist = homeadlist;}public static class HomeadlistBean {public HomeadlistBean() {}public String getRemark() {return remark;}public HomeadlistBean(int id, String remark) {this.id = id;this.remark = remark;}public int getId() {return id;}/*** id : 1* imgurl : /img/homead/a73b3f1d-0f14-429d-9d0f-70643fb0f0eb.jpg* jumpflag : 0* jumpurl :* posflag : 1* remark : 1111* cityid : 1*/private int id;private String imgurl;private int jumpflag;private String jumpurl;private int posflag;private String remark;private int cityid;}
}

4.工具类

package com.example.imageloader2;import android.util.Log;import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;public class JsonUtils {private static final String TAG = "JsonUtils";/*** 系统的JSONObject, JSONArray*/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;}/*** Gson解析*/public static List<DataModel> getJsonList2(String json) {List<DataModel> 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);Log.d(TAG, "DATA:"+sonObject.getString("data"));DataModel model = new Gson().fromJson(sonObject.getString("data"), new TypeToken<DataModel>(){}.getType());dataList.add(model);}return dataList;} catch (JSONException e) {e.printStackTrace();}return null;}public static Homead getJsonList3(String json) {Homead homead = new Gson().fromJson(json, Homead.class);return homead;}
}

Json3种解析方式相关推荐

  1. php xml 四种,xml中常见的四种解析方式是什么?

    xml解析方式有:1.DOM解析方法,可以对xml文档进行修改操作:2.SAX解析方法,解析速度快,占用内存少:3.JDOM解析方法,查找方便:4.DOM4J解析方法,解析XML的速度快. 在XML的 ...

  2. xml的三种解析方式

    本篇博客重点介绍Android中三种解析XML的方式,包括PULL.SAX.DOM,当然不止这些,还可以用第三方的jar包提供的解析,只是这三种在Android中比较常用吧.再顺便介绍一下Androi ...

  3. JSON的两种解析方式

    JSON的两种解析方式:Gson和Fastjson,下面来看下这两种解析方法怎样使用,并且他们有哪些区别. 1.Gson: Gson是谷歌的一款JSON解析工具. 功能①:将对象转化为JSON字符串 ...

  4. JSON的三种解析方式以及JSONObject、JSONArray区别

    JSON的常用两种解析方式 一.什么是JSON? JSON是一种取代XML的数据结构,和xml相比,它更小巧但描述能力却不差,由于它的小巧所以网络传输数据将减少更多流量从而加快速度. JSON就是一串 ...

  5. xml的两种解析方式:sax,dom4j

    两种解析方式的优缺点:     sax解析:优点:不需要读取整个文件,并且将其储存在内从中,不耗费内存资源,才用触发监听的方式,文件读到哪里触发相应方法.         缺点:不能反复调用,每次解析 ...

  6. XML常用的几种解析方式

    XML的解析方式有很多,光开源的就有十多种:如Xerces.JDOM.DOM4J.XOM.JiBX.KXML.XMLBeans.jConfig.XStream.XJR等. 更多免费教学文章请关注这里 ...

  7. xml文件的三种解析方式 DOM SAM PULL

    <?xml version="1.0" encoding="UTF-8"?> <root><student id="1& ...

  8. XML常见的两种解析方式总结

    XML解析方式 在程序开发过程中,经常需要对XML文档进行解析,常见套路往往是:XML文档–>XML解析器<–>API<–>应用程序.经常用到的解析方式如下: - DOM ...

  9. xml几种解析方式的优缺点

    现在解析XML的主流的方法有DOM.SAX.JDOM和DOM4J 1.DOM [优点]       ①应用程序可以其对数据和结构进行更改.       ②访问是双向的,可以在任何时候在树中上下导航,获 ...

最新文章

  1. 算法基础知识科普:8大搜索算法之AVL树(下)
  2. 皮一皮:真的是方法不对吗?
  3. python如何导入txt文件-python如何导入txt数据库?
  4. Android4.2.2源码目录结构分析
  5. (~最新合集~)计算机网络谢希仁第七版 第二章课后答案
  6. 在hadoop/hbase等代码中kinit
  7. [python opencv 计算机视觉零基础到实战] 十二 直方图
  8. define定义的是什么类型_为什么Django 3后建议使用Field.choices枚举类型定义choices选项...
  9. PHP苹果不给上架,苹果商城上架拒绝
  10. redis专题:使用redis实现分布式锁
  11. ORACLE行转列通用过程(转)
  12. linux qt调用摄像头,Qt5下实现摄像头预览及捕获图像方法实例
  13. 语音处理的分帧,帧移,加窗,滤波,降噪,合成
  14. VMwarePro16 安装 Win7+BurpSuite
  15. 大数据技术之_16_Scala学习_11_客户信息管理系统+并发编程模型 Akka+Akka 网络编程-小黄鸡客服案例+Akka 网络编程-Spark Master Worker 进程通讯项目
  16. DDD之Repository模式
  17. element表格标题两行设置办法
  18. 鸿蒙 OS 的到来,能为我们改变什么?
  19. 如果可以随意 Emoji 组合,你能让两个表情包碰撞出什么花样?
  20. 第 270 场力扣周赛

热门文章

  1. [附源码]java毕业设计远程在线教育平台
  2. 丰富自己, 比取悦他人更有力量
  3. 小米不只要做互联网公司,还要成为AI公司
  4. 眼神接触的神奇效应!从科学研究发现眼神的力量
  5. android ormlite 查询,关于androidORMLite的一些总结
  6. share一下美团面试经历
  7. 吴恩达机器学习笔记 转自启人zhr
  8. 程序员可以在周末做的8件事
  9. 【HMS core】【IAP Kit】【FAQ】华为支付典型问题集
  10. gstreamer使用总结