0

我正在尝试为 Windows 8 应用程序验证 JSON 的以下 URL。问题是下面的代码运行它不会绑定到提供的列表框。我知道代码有效,并将其单选到我创建的 JSON 中。

 new WinJS.Binding.List(json.results);

本网站上看到的 JSON 在网站上显示为有效...

https://example.com/app/example.php

..如果我将 URL 复制并粘贴到 JSON valadator 中,例如 jsonlint.com,我得到:

Parse error on line 1 <\!DOCTYPEhtmlPUBLIC" ^ Expecting '{', '['

..但是当我复制并粘贴代码时,URL 是有效的。

我知道这是一个简单的解决方案,但我无法让它为我的生活工作。任何帮助表示赞赏。

4

1 回答 1

0

问题是 URL 没有返回正确的 JSON 响应。它返回一个 HTML 响应,其中包含格式化代码块中的 JSON。因此,虽然复制和粘贴它会起作用,但您的代码将看到包装它的所有 HTML 并中断(因为它是无效的)。

如果这是您控制的 API,则需要Content-type在 PHP 脚本 ( header('Content-type: application/json')) 中设置标头,并且只返回 JSON 字符串,根本不返回任何 HTML 代码。

如果不是,最好的办法是获取 URL,然后从响应中删除所有 HTML,以便解析剩余的 JSON。DOM 解析库可能会帮助您做到这一点。

编辑:看来响应现在(或已经)正确,并且在http://jsonlint.com上验证良好。

于 2012-11-15T21:29:35.127 回答