json格式转换成java代码格式_详解json在SpringBoot中的格式转换

@RestController自动返回json

a412df44ceab64f47c95f0967a04b5ac.png

/**

* json 三种实现方法

* 1 @RestController自动返回json

*/

@GetMapping("/json")

public Student getjson() {

Student student = new Student("bennyrhys",158

);

return student;

}

@ResponseBody+@Controller 组合返回json

23847c598d49c06c3a9b52e101c53200.png

//@RestController

@Controller

// 类名上方

@GetMapping("/json")

@ResponseBody

public Student getjson() {

Student student = new Student("bennyrhys",158

);

return student;

}

在pom.xml 添加 阿里巴巴json jar包

664f994830c82f60470117b9c0f845aa.png

//@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 来看

JSONArray当成一个 List 来看

JSON.toString(Object)----> return String

JSON.parse(String)----->return Object

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);

237a91aaeeed950f87505d05eaefcc7d.png

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 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 ok() {

return ok(null);

}

public static JsonResponse ok(T result) {

return new JsonResponse<>(0, "", result);

}

public static JsonResponse error(Integer code) {

return error(code, "error!");

}

public static JsonResponse error(String msg) {

return error(-1, msg);

}

public static JsonResponse error(Integer code, String msg) {

return new JsonResponse<>(code, msg, null);

}

}

}

controller

return ResponseEntity.ok(JsonResponse.JsonResponseUtil.ok(source));

到此这篇关于详解json在SpringBoot中的格式转换的文章就介绍到这了,更多相关SpringBoot json格式转换内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值