正确解析 JSON

Correct parsing of JSON

首先,如果这段代码有任何不好的、低效的或完全错误的,请原谅我,我以前根本没有使用过 JSON,或者任何类型的 API 工作.

所以,我只是想创建一个基本网页,它将显示通过 JSONP 获得的 JSON 中的一些信息(我是否正确实现了它...?)。我以为我正在正确访问 id 元素,但它似乎不是因为我试图让它显示警报,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); 
}

这看起来很简单,我只是搞砸了。任何帮助将不胜感激,谢谢!

I'm just trying to create a basic webpage which will display some information from the JSON obtained through JSONP (did I implement it correctly...?).

你说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 returns JSON 不是 JSONP.

var parseJSON =  function(json) {
    var obj = JSON.parse(json);

虽然 JSONP 服务可以以包含 JSON 的 JavaScript 字符串的形式提供数据,但我从未见过这种情况。不应将参数解析为 JSON。它应该是一个常规的 JavaScript 数据结构。

…但首先你需要 return JSONP.

的服务