JSON解析有时会在解析字符串时出现错误

问题描述 投票:1回答:2

我有相同的输入字段,用户可以在其中输入一些数据。接下来,我的代码将其转换为JSON并将其发送到服务器。

$("#submit").click(function(){
    var inp = $("#inpTxt").val();

    if(inp == null || inp == ""){
        return;
    }

    jsonResult = JSON.parse('{"data": "' + inp + '"}');

    $.ajax({
        data : jsonResult,
        ...
    });
});

这里的问题是上面的代码有时有效,有时却无效。在大多数情况下,我测试代码的过程都非常吸引人,但在生产环境中,我不断收到多次报告错误的信息。

我还无法找出可能的原因。

注:上面未共享代码的某些部分,而只是问题的一部分。

javascript jquery json
2个回答
0
投票

使用JSON.Parse函数时,您需要自己处理特殊字符。因此,如果有人在您的inpTxt输入中输入“”,则会在解析该字符串时导致错误。

您应该执行类似以下代码的操作,以避免解析错误,并让javascript正确处理字符串上的特殊字符。

jsonResult = { data: inp };

我创建了一个JS小提琴,以使其更易于理解。https://jsfiddle.net/ub3w0a8x/


0
投票

根据最后一条评论,似乎有人在输入中输入了一些转义字符时会出现问题(@ Noob46确定了使用“ Something”大小写的情况,但在我看来,如果还有其他转义字符,例如\或其他其他以\开头也可能导致相同的问题)。

© www.soinside.com 2019 - 2024. All rights reserved.