Json3种解析方式

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;
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值