【Java Web】与后端相关的前端技术

JSON(二进制文件)

在这里插入图片描述

  • 提问:为什么要使用JSON进行数据交互?
    JSON在接口调用、HTML页面中较常用;
    因为JSON格式较简单,解析较简单;

序列化:JSON -> JavaBean
反序列化:Java Bean -> JSON

SpringMVC的JSON交互

  • 1.请求JSON,输出JSON:
    客户端写JSON不方便,少用;
  • 2.请求Key/Value,输出JSON:常用

———————————————

  • String 转成 JSONNode的方法
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;

private static final ObjectMapper objectMappper = new ObjectMapper();

public static JsonNode strToJsonNode(String str){
    try {
        return  objectMappper.readTree(str);
    } catch (IOException e) {
        return null;
    }
}

———————————————

  • 提问:@RequestBody和@RequestParam的区别?

@RequestParam

1.用来处理简单的参数绑定;
2.用来接收 Content-Type 是 application/x-www-form-urlencoded (content-Type默认格式)编码的内容;

@RequestBody

1.处理非 application/x-www-form-urlencoded 编码的内容;
如:application/json application/xml

另外:
GET请求中无HttpEntity,所以@RequestBody并不适用;
POST请求中,通过HttpEntity传递的参数,必须要在请求头中声明数据的类型Content-Type,SpringMVC通过使用HandlerAdapter 配置的HttpMessageConverters来解析HttpEntity中的数据,然后绑定到相应的bean上;
———————————————
环境配置:
在这里插入图片描述
在这里插入图片描述
———————————————

@RequestBody直接以JSONString接收前端JSON

@RestController
public class MyController {

    @RequestMapping("/json")
    public String haha(@RequestBody String jsonString){
        System.out.println(jsonString);
        return jsonString;
    }
}

在这里插入图片描述
———————————————

@RequestBody以简单对象接收前端JSON

@RestController
public class MyController {

    @RequestMapping("/json")
    public String haha(@RequestBody User user){
        System.out.println(user.toString());
        return user.toString();
    }
}

在这里插入图片描述
———————————————

@RequestBody以复杂对象接收前端JSON

@RestController
public class MyController {

    @RequestMapping("/json")
    public String haha(@RequestBody Team team){
        System.out.println(team.toString());
        return team.toString();
    }
}

在这里插入图片描述
———————————————

@RequestBody与简单的@RequestParam()同时使用

@RestController
public class MyController {

    @RequestMapping("/json")
    public String haha(@RequestBody User user,@RequestParam("token") String token){
        System.out.println(user.toString());
        System.out.println(token);
        return token + " -> " + user.toString();
    }
}

在这里插入图片描述
———————————————

@RequestBody与复杂的@RequestParam()同时使用

———————————————
———————————————
———————————————
———————————————
———————————————

————————————————————————————-

FASTJSON

fastjson:将json字符串转化成map的五种方法
https://www.cnblogs.com/heqiyoujing/p/9432153.html

乱序问题
在这里插入图片描述
Entity属性前加上:@JSONField(ordinal = 数字)
在这里插入图片描述
——————————————————————————————
https://blog.csdn.net/srj1095530512/article/details/82529759

Java Bean:Student(name="bob",age=24)
JSON String:{"name":"bob","age":24}
JSON Object:{"name":"bob","age":24}

记忆
JSONString是很忠实的类型:
他转成什么都是:JSON.parseObject();什么转成他都是:JSON.toJSONString()

  • 提问:Json字符串和Json对象有什么区别?

在这里插入图片描述
对象的属性可以用:对象.属性进行调用;
而字符串就不能通过属性调用;
且:@RequestBody接收到的是一个Json字符串;
——————————————————————————————
JSON.toJSONString()
Java Bean 转 JSON String
在这里插入图片描述
JSON.parseObject()
JSON String 转 Java Bean
在这里插入图片描述
JSON.toJSON()
Java Bean 转 JSON String
{"name":"bob","age":24}
在这里插入图片描述
JSON.toJavaObject()
JSON String 转 Java Bean
Student(name=bob, age=24)
在这里插入图片描述
JSON.toJSONString()
JSONObject 转 JSONString
在这里插入图片描述
JSON.parseObject()
JSONString 转 JSONObject在这里插入图片描述
———————————————
把输入流转成JavaBean,且配置字符串(默认字符串):

目标对象 实例 = JSON.parseObject(
        InputStream,
        Charset.defaultCharset(),
        目标对象.class
);

———————————————
———————————————
———————————————
———————————————

————————————————————————————-

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值