繁体   English   中英

带有JSON响应的jQuery GET。 选择特定对象

[英]JQuery GET with JSON response. Select specific objects

我正在开发一个简单的Web应用程序。 这将使客户输入车牌,然后连接到基于Socrata的OpenData API,该API包含我国所有已注册汽车的记录。

它必须使用车牌找到正确的汽车,并显示特定信息。 显示的信息类型会有所不同,因为我打算在几个不同的网页上使用此应用程序,但是作为起点,我想显示汽车的品牌和型号。 这些在数组中列为

"merk" : "KIA"
"handelsbenaming" : "PICANTO"

其中“默克”是品牌/制造商,“ handelsbenaming”是模型。

我对javascript不太熟悉,并且对JQuery完全陌生,但是我设法做到了这一点:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.2/jquery.min.js"></script>
<script>
var kenteken = "1KBB00";

$(document).ready(function(){
    $("button").click(function(){
$.get("https://opendata.rdw.nl/resource/m9d7-ebf2.json",{kenteken: kenteken},function(data, status){
        alert("Data: " + data + " Status: " + status);});
 });
});

</script>
</head>
<body>

<button>Click</button>
</body>

如您所见,通过按下按钮将触发JQuery。 稍后,我将在输入字段中获取车牌号,但出于测试目的,我仅将变量“ kenteken”定义为真实的车牌。 同样出于测试目的,我想在警报框中返回响应。

经过测试,Firefox中的控制台不会显示任何错误。 我还可以看到发出了GET请求,并返回了JSON数组。 但是,我无法使数组写入文档或警报框。 当前,警报显示:

Data: [object Object] Status: success

据我所知,“数据”应显示GET请求返回的整个JSON数组

我使用Google,多次阅读了API随附的文档,阅读了SO上更多的文章,这远远超出了我的预期,但我没有得到。

当您取回数据时,它以字符串形式出现。

使用JSON.Parse(data)将其转换回JSON对象,您应该使它看起来正确。 在警报之前放置一个断点,然后您可以检查返回的内容和json方法的作用。

$.get("https://opendata.rdw.nl/resource/m9d7-ebf2.json",{kenteken: kenteken},function(data, status){
        debugger;
        var jsonData = JSON.Parse(data);
        alert("Data: " + jsonData + " Status: " + status);});
 });

响应不是单个对象,而是一个对象数组,因此您需要为它们建立索引以访问属性。 我在下面显示了如何访问第一个,但是在您的真实代码中您可能会循环。

$.getJSON("https://opendata.rdw.nl/resource/m9d7-ebf2.json",{kenteken: kenteken},function(data, status){
    alert("Merk: " + data[0].merk + " Handelsbenaming: " + data[0]. handelsbenaming + " Status: " + status);});
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM