BaseBean的统一解析

本文介绍了一种使用Gson库将JSON字符串转换为Java对象的方法。通过泛型处理,该方法可以灵活地应用于不同类型的Java Bean类。具体实现包括获取泛型类型及使用Gson进行JSON解析。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

将json转换为对象

/**
     * 解析json
     * @param json
     * @return T bean类
     */
    private T parseJson(String json) {
        Gson gson = new Gson();
        // 2.从一个 json 中去解析数据, 这里需要建对应的 java bean类
        // 没有T.class的写法,使用泛型解析
        ParameterizedType type = (ParameterizedType) getClass().getGenericSuperclass();
        Type[] types = type.getActualTypeArguments();
        //写一个TypeToken的匿名子类,然后再getType即可
//        gson.fromJson(json, new TypeToken<List<HomeBean.ApkItem>>(){}.getType());

        return gson.fromJson(json, types[0]);
        //List<HomeBean.ApkItem>
    }
package com.api.hw.hssl; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.api.hw.utils.Result; import com.api.hw.utils.WebJsonUtils; import com.api.integration.web.OAuth2ServerAction; import weaver.conn.RecordSet; import weaver.general.BaseBean; import weaver.integration.logging.Logger; import weaver.integration.logging.LoggerFactory; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.ws.rs.POST; import javax.ws.rs.Path; import javax.ws.rs.Produces; import javax.ws.rs.core.Context; import java.util.HashMap; @Path("/api/openapi/v1/travel/costCenter/synTravelOrder") public class SynchronousAPI { private Logger logger = LoggerFactory.getLogger(OAuth2ServerAction.class); @POST @Path("/SynchronousAPI") @Produces("application/json") public Object getSynchronousinfo(@Context HttpServletRequest request, @Context HttpServletResponse response){ this.logger.info("================getSynchronousInfo start...==============================="); HashMap retMap = new HashMap(); Result result = null; try { JSONObject requestJSON = WebJsonUtils.getRequestJSON(request); String APPID = (String) requestJSON.get("APPID"); String USERID = (String) requestJSON.get("USERID"); String TOKEN = (String) requestJSON.get("TOKEN"); String sql = "select orderType,start_datetime,end_datetime\n"; RecordSet recordSet = getRecordSet(sql); JSONArray data = new JSONArray(); while(recordSet.next()){ JSONObject jsonObject = new JSONObject(); jsonObject.put("orderType",recordSet.getString("orderType")); jsonObject.put("start_datetime",recordSet.getString("start_datetime")); jsonObject.put("end_datetime",recordSet.getString("end_datetime")); jsonObject.put("discount",recordSet.getString("discount")); jsonObject.put("trainSeat",recordSet.getString("trainSeat")); jsonObject.put("cabinType",recordSet.getString("cabinType")); jsonObject.put("actualPlaceOfDeparture",recordSet.getString("actualPlaceOfDeparture")); jsonObject.put("actualDestination",recordSet.getString("actualDestination")); jsonObject.put("travelername",recordSet.getString("travelername")); jsonObject.put("roomType",recordSet.getString("roomType")); jsonObject.put("orderDate",recordSet.getString("orderDate")); jsonObject.put("orderAmount",recordSet.getString("orderAmount")); jsonObject.put("vehicleType",recordSet.getString("vehicleType")); jsonObject.put("originalOrderNo",recordSet.getString("originalOrderNo")); jsonObject.put("universalType",recordSet.getString("universalType")); data.add(jsonObject); } result = Result.build(200, "success!!!", data); return result; }catch (Exception e) { logger.error(e.getMessage()); result = Result.build(500, "=====error occured !" + e.getMessage(), retMap); } return result; } public static RecordSet getRecordSet(String sql) { RecordSet recordSet = new RecordSet(); BaseBean logInfo = new BaseBean(); try { recordSet.execute(sql); } catch (Exception e) { logInfo.writeLog("数据异常:" + e); } return recordSet; } }
最新发布
07-09
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值