JSON相关使用

controller 返回 json 数据

@Controller
@RequestMapping("/user")
public class UserController {

    @RequestMapping("/json")
    @ResponseBody
    //使用@ResponseBody 注解实现将 controller 方法返回对象转换为 json 响应给客户端。
    //也可以在类上直接使用 @RestController ,这样子,里面所有的方法都只会返回 json 字符串了,不用再每一个都添加@ResponseBody 
    public String jsonTest() throws JsonProcessingException {

        // 1 创建json映射对象
        ObjectMapper mapper = new ObjectMapper();

        // 2 java对象解析为json字符串

        User user = new User(1, "hei", 18, "nan");
        String str = mapper.writeValueAsString(user);

        return str;
    }

}

解决返回的json数据乱码

方式一:

//produces:指定响应体返回类型和编码
@RequestMapping(value = "/json",produces = "application/json;charset=utf-8")

方式二:在 springmvc 的配置文件上添加一段消息转换配置

<mvc:annotation-driven>
   <mvc:message-converters register-defaults="true">
       <bean class="org.springframework.http.converter.StringHttpMessageConverter">
           <constructor-arg value="UTF-8"/>
       </bean>
       <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
           <property name="objectMapper">
               <bean class="org.springframework.http.converter.json.Jackson2ObjectMapperFactoryBean">
                   <property name="failOnEmptyBeans" value="false"/>
               </bean>
           </property>
       </bean>
   </mvc:message-converters>
</mvc:annotation-driven>

JSON 返回自定义时间格式

@RequestMapping("/json")
public String json() throws JsonProcessingException {

   ObjectMapper mapper = new ObjectMapper();

   //不使用时间戳的方式
   mapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false);
   //自定义日期格式对象
   SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
   //指定日期格式
   mapper.setDateFormat(sdf);

   Date date = new Date();
   String str = mapper.writeValueAsString(date);

   return str;
}

JSON 与 JS 对象互转

        //编写一个js对象
        var user = {
            name : "小张",
            age : 18,
            sex : "男"
        };

        //将js对象转换为字符串
        var str = JSON.stringify(user);
        console.log(str);

        //将字符串转换为js对象
        var js = JSON.parse(str);
        console.log(js);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值