springmvc中对象与字符串的相互转换

开发过程中前后端传值总会遇到json字符串与对象之间的转换,
总结以下几点,日后复习。

一: 先把开发过程中的坑排了

导入js文件

jquery-1.11.1.min.js

当web.xml中

<url-pattern>/</url-pattern>

是以”/”为spring接收格式时,

是 resultful 风格,默认不加载 css.js.img 的

需要手动在 springmvc 的配置文件中添加

<!-- location 表示工程路径  mapping 表示需要映射的目录,加载js,css,img -->
<mvc:resources location="/js/" mapping="/js/*"/>

二:两个注解

  • @RequestBody

    表示接收json字符串数据,再将json字符串转换成对象

  • @ResponseBody

    表示响应json对象数据,再将json对象转换成字符串

三:前端

js中定义一个对象,并用ajax与后台交互

$(function(){
        var obj = {
                id : 1,
                name : "张三",
                age : 10
        };
$.ajax({
            url : "${pageContext.request.contextPath }/ajax",
            contentType : "application/json;charset=utf-8",
            data : JSON.stringify(obj),
            type : "post",
            dataType : "json",
            success : function(data){
                console.log(data.id);
                console.log(data.name);
            }
        });

四:后台

@Controller
public class AjaxController {
    @ResponseBody
    @RequestMapping("/ajax")
    public Map<String,Object> ajax(
            @RequestBody Map<String,Object> param) {
//      接收请求数据
        System.out.println("ID : "+param.get("id"));
        System.out.println("姓名 : "+param.get("name"));
        System.out.println("年龄 : "+param.get("age"));

//      响应请求数据
        Map<String,Object> result = new HashMap<>();
        result.put("id", "et_"+param.get("id"));
        result.put("name", "et_"+param.get("name"));

        return result;
    }
}

json字符串与对象的相互装换

package com.abc.common;

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;

public class JsonUtil {
    private static ObjectMapper mapper = null;
    private static SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    static{
//      创建json对象
        mapper = new ObjectMapper();
//      json处理时间格式
        mapper.setDateFormat(dateFormat);
    }
//  将对象转换为json字符串
    public String toStr(Object object) {
        String json = null;
        try {
            json = mapper.writeValueAsString(object);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return json;
    }
//  将json字符串转换为对象
    public <T> T toObject(String json,TypeReference<T> ref) {
        T t = null;
        try {
            t = mapper.readValue(json, ref);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return t;
    }


    public static void main(String[] args) {
        JsonUtil ju = new JsonUtil();
//      1.将字符串转换成对象
        List<Map<String,Object>> list = new ArrayList<>();

        Map<String,Object> map = new HashMap<>();
        map.put("name", "张三");
        map.put("age", 321);
        map.put("date", new Date());
        list.add(map);
        System.out.println("我是list : "+list);
        System.out.println("我是map : "+map);
        String result = ju.toStr(map);
        System.out.println("我是对象转换为json字符串 : "+result);
//      2.将json转换成对象
        String json = "[{\"name\":\"张三\",\"age\":321}]";
        List<Map<String,Object>> reObj = ju.toObject(json, new TypeReference<List<Map<String,Object>>>(){});
        System.out.println("我是json字符串转换为对象 : "+reObj);
    }

}

样例

我是list : [{date=Sat Nov 18 13:33:16 CST 2017, name=张三, age=321}]
我是map : {date=Sat Nov 18 13:33:16 CST 2017, name=张三, age=321}
我是对象转换为json字符串 : {"date":"2017-11-18 13:33:16","name":"张三","age":321}
我是json字符串转换为对象 : [{name=张三, age=321}]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值