赞
踩
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") @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); linearLayout = new LinearLayout(this); WebView webView = new WebView(this); WebSettings settings = webView.getSettings(); //让webView支持JS settings.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; } }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。