首先,请原谅我,如果这些代码中的任何一个是坏的,低效的或完全错误的,我以前根本没有使用JSON,或者任何类型的API工作。
所以,我只是想创建一个基本网页,它将显示通过JSONP获得的JSON中的一些信息(我是否正确实现了它??)。我认为我正在正确访问id元素,但似乎并没有因为我尝试使用alert,console.log以及设置段落的内部html来显示它。这是代码:
HTML
</head>
<body>
<p id="main">
test
</p>
</body>
<script src="js/parseJSON.js"></script>
<script type="application/json" src="https://www.aviationweather.gov/gis/scripts/MetarJSON.php?taf=true&bbox=-86,41,-82,45&callback=parseJSON"></script>
</html>
的Javascript
var parseJSON = function(json) {
var obj = JSON.parse(json);
console.log(obj.features[0].properties.id);
}
这似乎很简单,我只是搞砸了。任何帮助将不胜感激,谢谢!
答案 0 :(得分:3)
我只是想创建一个基本网页,它将显示通过JSONP获得的JSON中的一些信息(我是否正确实现了它??)。
你说type="application/json"
所以浏览器会忽略它,因为它不知道如何执行用JSON编写的脚本。
JSONP不是JSON,而是JavaScript,因此正确的内容类型为application/javascript
。
进一步https://www.aviationweather.gov/gis/scripts/MetarJSON.php?taf=true&bbox=-86,41,-82,45&callback=parseJSON
返回JSON而不是JSONP。
var parseJSON = function(json) { var obj = JSON.parse(json);
虽然JSONP服务可以以包含JSON的JavaScript字符串的形式提供数据,但这绝不是我见过的。不应将参数解析为JSON。它应该是一个常规的JavaScript数据结构。
...但首先你需要服务来返回JSONP。