JSON解析

来源:互联网 发布:java runonthread 编辑:程序博客网 时间:2024/06/07 01:44
JSONLint格式化校验JSON
1、eval()解析,不推荐var jsondata='{staff:[{"name":"张三","age":"70"},{"name":"李四","age":"40"}]}';
var jsonObj=eval('('+jsondata+')');
alert(jsonObj.staff[0].name);
因为eval()解析时不止解析json字符串,也会执行里边的方法,例如      "name":alert("a")
此时会将a输出。
2、JSON.parse()解析,推荐

var jsondata='{staff:[{"name":"张三","age":"70"},{"name":"李四","age":"40"}]}';
var jsonObj=JSON.parse(jsondata);
alert(jsonObj.staff[0].name);

3、JSON中文乱码

我使用的Springmvc,在controller层传输一个json到前台,后台显示没问题,中文正常显示而到了前台

中文就变成了问号。

后来发现,因为在controller中返回json用了@ResponseBody,而spring源码中@ResponseBody 的实现类发现其默认的编码是 iso-8859-1,而项目用的编码为utf-8,所以传中文会出现乱码。

这里我使用了注解来解决:

?
1
@RequestMapping(value="/echarts.do", produces = "application/json; charset=utf-8")

这种方法比较适用于新版本的spring,本项目的版本:

?
1
<spring.version>4.1.4.RELEASE</spring.version>

以上所述是小编给大家介绍的用ajax传递json到前台中文出现问号乱码问题的解决办法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支

<script type="text/javascript">    window.onload = $(function () {        var aid = 1;        aid = encodeURI(aid),            $.ajax({                    type: "POST",                    url: "/common/test",                    data: {id: aid},                    async: true,                    success: function (list) {                        $.each(list, function (idx, obj) {                            alert(obj[0].goods_description);                        });                    }, error: function (list) {                        alert("error" + list.length);                    }                }            )    })</script>
@RequestMapping(value = "test",produces = "application/json; charset=utf-8")@ResponseBodypublic String test(HttpServletResponse response, String id, Map<String, Object> map) {    response.setContentType("text/html;charset=UTF-8");    response.setCharacterEncoding("UTF-8");    System.out.println(id);    List<Goods> list = integral_search_service.getIntroductionById(id);    map.put("list", list);    String jsonString= JSON.toJSONString(map);    System.out.println(list);    return jsonString;}




原创粉丝点击