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();
}
}