欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

fastjson和Android原生解析的使用过程

程序员文章站 2022-06-06 08:41:53
...

fastjson 的使用

fastjson 是阿里巴巴开源的解析json数据框架

1. 添加依赖

compile ‘com.alibaba:fastjson:1.1.70.android’
或者通过在libs 目录添加jar引用

2. 常用的方法

① 把JSON字符串转化为JSONObject :JSONObject.parseObject(String s)

②把json文本解析成JsonArray: parseArray(String text, Class clazz)

③ 把bean类,List,Map转化成Json字符串: JSON.toJSONString(Object object)

3.使用过程

需要解析的json数据

{
	"title": "元音节",
	"content": {
		"page_data": [
		   {
              "englishname":"fish",
              "chinesename":"鱼",
			  "picture":"/1478770583835.png"
          },
          {
              "englishname":"egg",
              "chinesename":"蛋",
			  "picture":"/1478770583835.png"
          },
          {
              "englishname":"dog",
              "chinesename":"狗",
			  "picture":"/1478770583835.png"
          }
		]
	}
}

新建一个实体类BiaoBean ,可通过Gsonfomat 插件快速创建

com.alibaba.fastjson.JSONObject json = com.alibaba.fastjson.JSONObject.parseObject(s);
        //得到状态码
        String content = json.getString("content");
        com.alibaba.fastjson.JSONObject biaoBean = JSON.parseObject(content,BiaoBean.class);
        // 获取键值为 page_data 的json数组
        String page_data = biaoBean.getString("page_data");
        List<BiaoBean.ContentBean.PageDataBean> contentBeans = JSON.parseArray(page_data, BiaoBean.ContentBean.PageDataBean.class);
        BiaoBean.ContentBean biaoBean1 = new BiaoBean.ContentBean();
        biaoBean1.setPage_data(contentBeans);

原生解析

1. 使用过程

    private void setBean_two(String s) {
        try {
           //实例化一个JSONObject 对象
            JSONObject json = new JSONObject();
            String jsonS = json.getString("content");
            String jsonT = json.getString("title");
            Log.e("setBean_two", "jsonS:" + jsonS.toString() + ",jsonT:" + jsonT.toString());
            JSONObject jsonObject1 = new JSONObject(jsonS);
            // 得到一个json数组对象
            JSONArray jsonArray = jsonObject1.getJSONArray("page_data");
            Log.e("setBean_two", "jsonArray.length():" + jsonArray.length());
            for (int i = 0; i < jsonArray.length(); i++) {
                JSONObject jsonObject = jsonArray.getJSONObject(i);
                String englishname = jsonObject.optString("englishname", null);
                String chinesename = jsonObject.optString("chinesename", null);
                Log.e("setBean_two", "englishname:" + englishname);
                Log.e("setBean_two", "chinesename:" + chinesename);
                Log.e("setBean_two", String.valueOf(i));
            }
        } catch (JSONException e) {
            e.printStackTrace();
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }
    }
相关标签: 软件