JavaWeb JSON

1. JSON转为Java对象

  1. 导入jackson的相关jar包
  2. 创建Jackson核心对象 ObjectMapper
  3. 调用ObjectMapper的相关方法进行转换
    readValue(json字符串数据,Class)

2. Java对象转换JSON

  1. 使用步骤:

  2. 导入jackson的相关jar包

  3. 创建Jackson核心对象 ObjectMapper

  4. 调用ObjectMapper的相关方法进行转换

    转换方法:

  • writeValue(参数1,obj):
    参数1:
    File:将obj对象转换为JSON字符串,并保存到指定的文件中
    Writer:将obj对象转换为JSON字符串,并将json数据填充到字符输出流中
    OutputStream:将obj对象转换为JSON字符串,并将json数据填充到字节输出流中
  • writeValueAsString(obj):将对象转为json字符串
  1. 注解:
  2. @JsonIgnore:排除属性。
  3. @JsonFormat:属性值得格式化
  • @JsonFormat(pattern = “yyyy-MM-dd”)
  1. 复杂java对象转换
  2. List:数组
  3. Map:对象格式一致

常用方法举例:
用一个map来装键值对 (用于用户名校验)

Map<String,Object> map = new HashMap<String,Object>(); 

if(user != null) //如果查询数据库返回的user对象不是空值,说明查询到这个用户名已经重复了
{
   
	map.put("userExsit",true);
	map.put("msg","用户名太受欢迎,请更换一个")
}
else
{
   
	map.put("userExsit",false);
	map.put("msg","用户名可用");
}

//将Map转化为json,并传递给客户端
//将map转化为json
ObjectMapper mapper = new ObjectMapper();

//并且传递给客户端
//直接写到getWriter这个往客户端写数据的流中
mapper.writeValue(response.getWriter(),map);

常见问题:
1.前端没法获取json的键值对
原因:前端没有把输出流当成Json来读取,而是简单得读了一个字符串。
解决方案:

  1. 在JQuery中的$.get(type):将最后一个参数type指定为"json"
  2. 在服务器端设置MIME类型
    response.setContentType(“application/json;charset=utf-8”);

2.乱码问题
常规解决方法就可以,在Servlet中,加入

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值