详解json在SpringBoot中的格式转换
@RestController自动返回json
/** * json 三种实现方法 * 1 @RestController自动返回json */ @GetMapping("/json") public Student getjson() { Student student = new Student("bennyrhys",158 ); return student; }
@ResponseBody+@Controller 组合返回json
//@RestController @Controller // 类名上方 @GetMapping("/json") @ResponseBody public Student getjson() { Student student = new Student("bennyrhys",158 ); return student; }
在pom.xml 添加 阿里巴巴json jar包
//@RestController @Controller // 类名上方 @GetMapping("/fastjson") public void fastjson(HttpServletResponse response){ Student student = new Student("bennyrhys",158); String data = JSON.toJSONString(student); try { sendJsonData(response, data); } catch (IOException e) { e.printStackTrace(); } } protected void sendJsonData(HttpServletResponse response, String data) throws IOException { response.setContentType("text/html;charset=UTF-8"); PrintWriter out = response.getWriter(); out.println(data); out.flush(); out.close(); }
fastjson深入理解
fastJson对于json格式字符串的解析主要用到了一下三个类:
JSON:fastJson的解析器,用于JSON格式字符串与JSON对象及javaBean之间的转换。
JSONObject:fastJson提供的json对象。
JSONArray:fastJson提供json数组对象。
toJSONString() 和 parseObject() 方法来将 Java 对象与 JSON 相互转换。调用toJSONString方 法即可将对象转换成 JSON 字符串,parseObject 方法则反过来将 JSON 字符串转换成对象。
允许转换预先存在的无法修改的对象(只有class、无源代码)。
Java泛型的广泛支持。
允许对象的自定义表示、允许自定义序列化类。
支持任意复杂对象(具有深厚的继承层次和广泛使用的泛型类型)。
JSONObject 当成一个 Map<String,Object> 来看
JSONArray当成一个 List 来看
JSON.toString(Object)----> return String
JSON.parse(String)----->return Object
String 和 JsonObject 和 JsonArray之间转化
https://www.jb51.net/article/199602.htm
1、String转JSONObject 或 JSONArray
JSONObject jSONObject = JSONObject.parseObject(String); JSONArray jsonArray= JSONArray.parseArray(String);
2、JSONObject中的数组提取为JSONArray
提取Result对应的数组
JSONArray jsonArray= jsonObject.getJSONArray(“Result”);
3、JSONArray提取为JSONObject
JSONObject jsonObject = jsonArray.getJSONObject(0);
4、JSONObject获取value
1、object.getString("key")
2、object.get("key")
JSONArray jsonArray= jsonObject.getJSONArray(“Result”); JSONObject jsonObject = jsonArray.getJSONObject(0);
封装json在entiy的body返回msg
ResponseEntity可以定义返回的HttpStatus(状态码)和HttpHeaders(消息头:请求头和响应头)
HttpStatus(状态码)https://blog.csdn.net/csdn1844295154/article/details/78980174
HttpHeaders(消息头:请求头和响应头)https://www.cnblogs.com/honghong87/articles/6941436.html
具体查看这些内容的用法可以参考https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Headers/Content-Disposition
ResponseEntity返回body
JsonResponseServlet
import java.io.Serializable; public class JsonResponse<T> implements Serializable { private Integer code; private String msg; private T result; public JsonResponse() { } public JsonResponse(Integer code, String msg, T result) { this.code = code; this.msg = msg; this.result = result; } public Integer getCode() { return code; } public void setCode(Integer code) { this.code = code; } public String getMsg() { return msg; } public void setMsg(String msg) { this.msg = msg; } public T getResult() { return result; } public void setResult(T result) { this.result = result; } public static class JsonResponseUtil { public static JsonResponse<Object> ok() { return ok(null); } public static <T> JsonResponse<T> ok(T result) { return new JsonResponse<>(0, "", result); } public static JsonResponse<Object> error(Integer code) { return error(code, "error!"); } public static JsonResponse<Object> error(String msg) { return error(-1, msg); } public static JsonResponse<Object> error(Integer code, String msg) { return new JsonResponse<>(code, msg, null); } } }
controller
return ResponseEntity.ok(JsonResponse.JsonResponseUtil.ok(source));
到此这篇关于详解json在SpringBoot中的格式转换的文章就介绍到这了,更多相关SpringBoot json格式转换内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
详解基于java的Socket聊天程序——初始设计(附demo)
本篇文章主要介绍了Socket聊天程序——初始设计(附demo),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧2016-12-12SpringBoot如何配置获取request中body的json格式参数
这篇文章主要介绍了SpringBoot如何配置获取request中body的json格式参数,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2022-06-06java使用RandomAccessFile类基于指针读写文件实例代码
这篇文章主要介绍了java使用RandomAccessFile类基于指针读写文件实例代码,具有一定参考价值,需要的朋友可以了解下。2017-10-10
最新评论