SpringMVC之JSON乱码和XML 解析错误:格式不佳 位置-yellowcong

出现这个两个问题的原因是1、编码格式没有指定,默认的编码是iso8859-1,2、没有设定表头ContentType为application/json

问题如下
SpringMVC之JSON乱码和XML 解析错误:格式不佳 位置-yellowcong_第1张图片

解决办法

//设定编码 
response.setCharacterEncoding("UTF-8");
//表示是json类型的数据
response.setContentType("application/json");

下面是完整的代码

/**
     * 在SpringMvc中获取到Session
     * @return
     */
    public void writeJSON(HttpServletResponse response,Object object){
        try {
            //设定编码 
            response.setCharacterEncoding("UTF-8");
            //表示是json类型的数据
            response.setContentType("application/json");
            //获取PrintWriter 往浏览器端写数据
            PrintWriter writer = response.getWriter();

            ObjectMapper mapper = new ObjectMapper(); //转换器
            //获取到转化后的JSON 数据
            String json = mapper.writeValueAsString(object);
            //写数据到浏览器
            writer.write(json);
            //刷新,表示全部写完,把缓存数据都刷出去
            writer.flush();

            //关闭writer
            writer.close();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

设定后的效果

SpringMVC之JSON乱码和XML 解析错误:格式不佳 位置-yellowcong_第2张图片

查看响应的表头,格式为json的,而且是utf-8类型的
SpringMVC之JSON乱码和XML 解析错误:格式不佳 位置-yellowcong_第3张图片

常见的表头类型

常见的媒体格式类型如下:

    text/html : HTML格式
    text/plain :纯文本格式     
    text/xml :  XML格式
    image/gif :gif图片格式   
    image/jpeg :jpg图片格式
    image/png:png图片格式

以application开头的媒体格式类型:

   application/xhtml+xml :XHTML格式
   application/xml     : XML数据格式
   application/atom+xml  :Atom XML聚合格式   
   application/json    : JSON数据格式
   application/pdf       :pdf格式 
   application/msword  : Word文档格式
   application/octet-stream : 二进制流数据(如常见的文件下载)
   application/x-www-form-urlencoded : 
中默认的encType,form表单数据被编码为key/value格式发送到服务器(表单默认的提交数据的格式)

另外一种常见的媒体格式是上传文件之时使用的:

    multipart/form-data : 需要在表单中进行文件上传时,就需要使用该格式

以上就是我们在日常的开发中,经常会用到的若干content-type的内容格式。

可以参考这个人的,写的挺详细的
http://blog.csdn.net/blueheart20/article/details/45174399

你可能感兴趣的:(springmvc)