微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

开发记录:涉及到数据的再封装,Java对象与JSON格式的互相转换

开发记录:涉及到数据的再封装,Java对象与JSON格式的互相转换

Fastjson

Fastjson 是一个 Java 库,可以将 Java 对象转换为 JSON 格式,当然它也可以将 JSON 字符串转换为 Java 对象。

  • 提供了 toJSONString() 和 parSEObject() 方法来将 Java 对象与 JSON 相互转换调用toJSONString方 法即可将对象转换成 JSON 字符串,parSEObject 方法则反过来将 JSON 字符串转换成对象。

  • 导入依赖:

    <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>fastjson</artifactId>
        <version>x.x.x</version>
    </dependency>
    
  • toJSONString() :截取一部分构造方法,会发现Object object,说明Java对象都能转换为字符串类型的Json格式数据

public static String toJSONString(Object object) {
    return toJSONString(object, emptyFilters);
}

public static String toJSONString(Object object, SerializerFeature... features) {
    return toJSONString(object, DEFAULT_GENERATE_FEATURE, features);
}

开发中的实际案例

案例一:对Map格式的数据进行再次封装,需要对Map格式的数据转换为Java实例对象

@Override
public void save(Map<String, Object> objectMap) { // 发送过来的数据被封装成map格式
    // 1. 把参数map集合转换为 Hospital 对象,这里需要使用导入依赖 FastJson
    String jsonString = JSONObject.toJSONString(objectMap);
    Hospital hospital = JSONObject.parSEObject(jsonString, Hospital.class); // 进一步说明,原先数据用map封装,是字段为key
    
    ....
        

​ 注意Map格式数据中的key与Java对象类字段的对应。

案例二:在短信服务中,需要取出在response body中的status字段,判断调用的短信接口是否发送成功。

HttpResponse response = HttpUtils_Ali.doPost(host, path, method, headers, querys, bodys);
//获取response的body
String entity = EntityUtils.toString(response.getEntity()); // response.getEntity() 只能获取一次,就关闭输出流了
//将body转为JSONObject
JSONObject jsonObject = JSONObject.parSEObject(entity);
String status = (String) jsonObject.get("status"); // 获取发送请求状态,成功返回:{"request_id":"TIDbbb613bb5c94418ea9b7b6b21b25d774","status":"OK"}

return status.equals("OK"); // 注意大小写

利用了JSONObject可以通过get获取相关字段数据

后续有业务使用再更新..................

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐