在工作的开展中,会遇到从外部接口中获取到了一大段Json数据的返回,想要将这个Json写入到实体类中的情况。
在遇到这种情况的时候,第一时间我想到的是最笨的遍历方法,采用最基础的方式将Json中的参数一个个put进入到实体类对象中。
import net.sf.json.JSONObject;
JSONObject dishTemp = (JSONObject) dish;
// 创建DishTOList实例
DishTOList dishEntity = new DishTOList();
if (dishTemp.has("id")) {
dishEntity.setId(dishTemp.getLong("id"));
}
if (dishTemp.has("name")) {
dishEntity.setAliasName(dishTemp.getString("name"));
}
if (dishTemp.has("attrs")) {
dishEntity.setAttrs(dishTemp.getJSONArray("attrs").toString());
}
这个方式在数据较少的时候,比较方便且数据出错的可能性较低,但是在实际的业务场景中,一条Json数据有几百上千条,将参数一个个set到实体类中,这个工作量有点太大了。那怎么样可以快速的将数据对应的放入实体类中呢?
可以采用 com.alibaba.fastjson.JSONObject.parseObjec()
的方式,直接将数据放入实体类中,下面是对应的案例展示。
Message message = com.alibaba.fastjson.JSONObject.parseObject(String.valueOf(object), Message.class);
其中 参数1
是一个Json字符串,必须是String类型的字符串,参数2
是要转换成的实体类对应的class。
通过上述方式,快速将Json数据转换到实体类中,便于后续的数据入库等操作。