2014-01-20 74 views
0

我有一些JSON(https://gist.github.com/tekknolagi/8526671),我正在请求我的博客文章列表。解析JSON返回神秘错误

我在控制台一些时髦的错误: enter image description here

而且也JSONLint: enter image description here

我无法弄清楚什么是错的。我的代码:

$(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); 
    } 
    }); 
}); 

而且它总是在解析失败。这几个星期以来一直在杀我。

+0

@TravisJ似乎逃脱了...... – Shomz

+0

你是怎么得到这样的“JSON”的?您应该使用库来构建JSON。 –

+0

@dystroy我使用Liquid生成它,但是它们自己的'json'或'jsonify'过滤器不起作用...由于某种原因 – tekknolagi

回答

6

抛出错误的代码行有这个里面的字符串:

Type \"help\", \"copyright\", \"credits\" or \"license\" 

\&不是JSON字符串值有效的转义序列:

http://json.org/string.gif


“证明” :

["\&foo"] 

导致同样的错误


因为我不知道该怎么\首先到达那里,这不是真的有可能提供解决方案。但是为了使JSON有效,你必须删除那些(或者像Pointy指出的那样(没有双关语意思))(在你生成JSON之前)。一个合适的JSON库实际上应该正确地转义\

+0

它也有一些制表符,并且这些也是不允许的。 (*编辑*也许) – Pointy

+0

'\&'事情可以通过加倍\使JSON安全,对吗? – Pointy

+0

@Pointy:是的,你在谈论哪些标签?如果我在'&'之前删除'''',那么JSON是有效的。 –