ajax解析Java传来的json文本中反斜杠(\)问题

来源:互联网 发布:巨人网络手游官网注册 编辑:程序博客网 时间:2024/05/17 22:21

问题:
前台传来的content内容包含\的时候, 例如 –> name : Tom, content : \
后台组合成json字符串 {“name” : “Tom”, “content” : “\”} 发送给ajax,
ajax会出现json解析错误情况

处理方法:
必须对要发送的字符串属性进行转换 –> str.replaceAll(“\\\\”, “\\\\\\\\”)
args0 是4个反斜杠, args1是8个反斜杠

下面是例子(没用json工具包)

Java代码:

/** * 接收参数, 交给业务层处理完, 返回json信息, 便于ajax更新页面 */ @ResponseBodypublic String index(@RequestParam String name, @RequestParam String content) {    Entity entity = new Entity(name, content);    if (entityServiceImpl.add(entity)) {    // 插入成功        StringBuilder sb = new StringBuilder();        sb.append("{\"name\" : \"");        sb.append(entity.getName());        sb.append("\", \"content\" : \"");        sb.append(entity.getContent().replaceAll("\\\\", "\\\\\\\\"));        sb.append("\"}");        return sb.toString();    }    // 忽略其他代码}

HTML代码:

<div id="formAera">    <p>这里是表单区域</p>    <input type="text" id="name"/>    <input type="text" id="content"/>    <a href="javascript:void(0)" class="submit">提交</a></div><div id="displayAera">    <p>这里显示后台返回的json信息内容</p></div>

JS代码:

$.ajax({    type : 'POST',    url : 'cm',    data : {        'name' : $('#name').val(),        'content' : $('#content').val()    },    dataType : 'json',    success : function(data, stats) {        var newEnity = $('<p>' + data.name + '</p>' + '<p>' + data.content + '</p>');        $('#displayArea').prepend(newEnity);    },    error : function(XMLHttpRequest, textStatus, errorThrown) {        console.log('Wrong~');    });
0 0
原创粉丝点击