无聊之余来篇JSON解析(手动+GSON)

1 篇文章 0 订阅
1 篇文章 0 订阅

规则:花括号对应JSONObject, 类
方括号对应JSONArray, List

一般情况javabean中解析的是resultMessage内的json数据,rs啥的都不用解析。
解析json常见解析JSONObject即json对象和JSONArray即json数组两种

####一、手动解析:包括解析JSONObject和JSONArray

public class SampleEntity implements Serializable {
    public int id;//跳转目标id
    public String name;//跳转名称
    
//解析JSONObject
public static SampleEntity parseJSONObject(JSONObject jsonObject) {
      SampleEntity entity = new SampleEntity();
      entity.id=jsonObject.optInt("id");
      entity.name=jsonObject.optString("name");
      return entity;
    }
    
//解析JSONArray
public static List<SampleEntity> parseJsonArray(JSONArray jsonArray) {
     ArrayList<SampleEntity> list = new ArrayList<>();
     if (jsonArray == null || jsonArray.length() == 0)       
     return list;
     for (int i = 0; i < jsonArray.length(); i++) {           
     list.add(parseJSONObject(jsonArray.optJSONObject(i)));
            }   
     return list;
    }
    
}

####二、GSON解析:包括解析JSONObject和JSONArray
解析JSONObject(json是jsonobject.tostring()得到的)

Gson gson = new Gson();
SampleEntity picEntity =gson.fromJson(json,SampleEntity.class);

解析JSONArray((json是jsonoArray.tostring()得到的))

 Gson gson = new Gson();
 Type type = new TypeToken<List<SampleEntity>>() {}.getType();
 List<SampleEntity> picList = gson.fromJson(json, type);

 val type = object : TypeToken<List<Entity>>() {}.type
 val entityList = Gson().fromJson<List<Entity>>(jsonArray.toString(), type)


何时解析解析JSONObject,何时解析解析JSONArray

拿到的json数据的resultMessage内的内容以花括号开头表示是个JSONObject,当然要解析JSONObject喽;
resultMessage内的内容以方括号开头,表示是是个JSONArray,当然要解析JSONArray喽。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值