我正在尝试为Windows 8应用验证以下JSON网址。问题是以下代码运行它不会绑定到提供的列表框。我知道代码可以工作,并将其单独添加到我创建的JSON中。
new WinJS.Binding.List(json.results);
在本网站上看到的JSON在网站上显示为有效......
http://avalonfashions.ie/JSON/ut4.php
..如果我将URL复制并粘贴到json valadator中,例如jsonlint.com,我得到:
Parse error on line 1 <\!DOCTYPEhtmlPUBLIC" ^ Expecting '{', '['
..但是当我复制并粘贴代码时,URL有效。
我知道这是一个简单的解决方案,但我不能让它为我的生活而工作。任何帮助表示赞赏。
答案 0 :(得分:0)
问题是URL没有返回正确的JSON响应。它返回一个HTML响应,其中包含格式化代码块中的JSON。因此,虽然复制和粘贴它将起作用,但您的代码将看到包装它并破坏的所有HTML(因为它无效)。
如果这是您控制的API,则需要在PHP脚本(Content-type
)中设置header('Content-type: application/json')
标头,并且只返回JSON字符串,而不返回任何HTML代码。< / p>
如果不是,最好的办法是获取URL,然后从响应中删除所有HTML,以便解析剩余的JSON。 DOM解析库可以帮助您完成此任务。
编辑:现在响应现在(或已经)正确,并且在http://jsonlint.com处验证正常。