如何将JSON调用作为字符串返回而不使用特殊字符

时间:2015-05-25 10:23:26

标签: jquery json

我希望返回文件内容,我正在使用webservice和JSON来执行此操作。

我已设法返回内容,但它不是我希望它的格式。

我需要顶部文本区域与底部的textarea格式相同:

enter image description here

enter image description here

我需要将\n显示为新行,而不是将其从字符串中删除。

当前代码(忽略警报,仅用于我自己的测试目的):

function CallWebService(CSSFile) {
    var stringToDisplay = "";
    var webMethod = "../services/BrokerAdmin/CSSComparison.asmx/GetFileContents";
    $.ajax({
        type: "POST",
        async: false,
        url: webMethod,
        data: JSON.stringify({
            CSSFile: CSSFile
        }),
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function(msg) {},
        error: function(e) {
            alert("Error = " + e.responseText);
        },
        complete: function(msg) {
            alert(msg);
            if (JSON.parse(msg.responseText).d.toString() != "" || JSON.parse(msg.responseText).d.toString() != null) {
                alert("msg.responseText = " + msg.responseText);
                $('#ctl00_BodyContent_elm2').val(msg.responseText);
            } else if (JSON.parse(msg.responseText).Message.toString() == "" || JSON.parse(msg.responseText).d.toString() == null) {
                alert("YOU LOSE!");
            } else {
                alert("TRY AGAIN");
            }
        }
    });
}

有人可以帮忙吗?

3 个答案:

答案 0 :(得分:1)

找到解决方案!

complete: function (msg) {
            alert(msg);
            if (JSON.parse(msg.responseText).d.toString() != "" || JSON.parse(msg.responseText).d.toString() != null) {
                alert("msg.responseText = " + msg.responseText);
                $('#ctl00_BodyContent_elm2').val(msg.responseText);
            }
            else if (JSON.parse(msg.responseText).Message.toString() == "" || JSON.parse(msg.responseText).d.toString() == null) {
                alert("YOU LOSE!");
            }
            else {
                alert("TRY AGAIN");
            }
        } 

在我的原始代码中,我能够更改传递给我的elm2的val()。代码更改如下:

complete: function (msg) {
                alert(msg);
                if (JSON.parse(msg.responseText).d.toString() != "" || JSON.parse(msg.responseText).d.toString() != null) {
                    $('#ctl00_BodyContent_elm2').val(JSON.parse(msg.responseText).d.toString());
                }
                else if (JSON.parse(msg.responseText).Message.toString() == "" || JSON.parse(msg.responseText).d.toString() == null) {
                    alert("Nothing in CSS file.");
                }
                else {
                }
            }  

所有现在都显示应该:)感谢大家的帮助!

答案 1 :(得分:0)

尝试解决方案 javascript regexp remove all special characters

带你去json返回并替换特殊字符:

var desired_json = json_text.replace(/[^\w\s]/gi, '');

可能只需要替换新行:

var desired_json = json_text.replace(/\n/gi, '');

编辑:将特殊字符显示为换行符......

 var desired_json = json_text.replace(/\r\n/gi, '<br>');

答案 2 :(得分:0)

忽略我所采取的警告$('#ctl00_BodyContent_elm2').val(msg.responseText);是输出结果的实际代码?什么样的元素是'#ctl00_BodyContent_elm2'?

尝试在html和ajax中添加一些<textarea>完成添加

$('textarea').val( JSON.parse(json).d );

是你在寻找什么?