Javascript 解析JSON返回隐藏错误

Javascript 解析JSON返回隐藏错误,javascript,jquery,ajax,json,Javascript,Jquery,Ajax,Json,我有一些JSON,我要求我的博客帖子列表 我在控制台中发现了一些奇怪的错误: 在JSONLint中: 我想不出怎么了。我的代码: $(document).ready(function () { $.ajax({ url: '/posts.json', type: "GET", dataType: "text", success: function(data) { // data = data.replace(/(\r\n|\n|\r)/gm,

我有一些JSON,我要求我的博客帖子列表

我在控制台中发现了一些奇怪的错误:

在JSONLint中:

我想不出怎么了。我的代码:

$(document).ready(function () {
    $.ajax({
    url: '/posts.json',
    type: "GET",
    dataType: "text",
    success: function(data) {
//      data = data.replace(/(\r\n|\n|\r)/gm,"");
        console.log(data);
        var parsed = JSON.parse(data);
        var parsed = data;
        var names = []
        for (var post in parsed) names.push(post.title);
        console.log(names);
        $('#page_holder').pagify({ 
        pages: data,
        default: null
        });
    },
    fail: function (err) {
        console.log(err);
    }
    });
});

它总是在解析时失败。这已经让我痛苦了好几个星期。

抛出错误的行在字符串中包含以下内容:

Type \"help\", \"copyright\", \"credits\" or \"license\"
\&不是JSON字符串值中的有效转义序列:

资料来源:

证明:

["\&foo"]
结果是同样的错误


因为我不知道\最初是如何到达那里的,所以不可能提供解决方案。但是为了使JSON有效,您必须删除它们或将它们加倍,正如Pointy指出的那样,在生成JSON之前没有任何双关语。正确的JSON库实际上应该负责正确转义\字符串。

引发错误的行在字符串中包含以下内容:

Type \"help\", \"copyright\", \"credits\" or \"license\"
\&不是JSON字符串值中的有效转义序列:

资料来源:

证明:

["\&foo"]
结果是同样的错误


因为我不知道\最初是如何到达那里的,所以不可能提供解决方案。但是为了使JSON有效,您必须删除它们或将它们加倍,正如Pointy指出的那样,在生成JSON之前没有任何双关语。一个合适的JSON库实际上应该负责正确地转义\n。

@TravisJ似乎已经转义了……您是如何得到这样的JSON的?您应该使用一个库来构建JSON。@我正在使用Liquid生成它,但是他们自己的JSON或jsonify过滤器不起作用。。。对一些人来说reason@TravisJ似乎逃脱了…你是怎么得到这样的JSON的?您应该使用一个库来构建JSON。@我正在使用Liquid生成它,但是他们自己的JSON或jsonify过滤器不起作用。。。出于某些原因,其中还包含一些制表符,这些也是不允许的。edit maybeThe\&通过将\加倍,可以使JSON安全,对吗?@Pointy:是的,您在谈论哪些选项卡?如果我只是在&之前删除\,当我搜索原始字符串时,JSON是有效的.Hmm,其中有一些制表符。然而,JSON规范对于控制字符的含义不是很清楚,因此可能允许使用tab 0x0009字符。其中还包含一些tab字符,这些字符也是不允许的。edit maybeThe\&通过将\加倍,可以使JSON安全,对吗?@Pointy:是的,您在谈论哪些选项卡?如果我只是在&之前删除\,当我搜索原始字符串时,JSON是有效的.Hmm,其中有一些制表符。然而,JSON规范并不十分清楚控制字符的含义,因此可能允许使用tab 0x0009字符。