javascript - 无法将 Web 服务器的 JSON 结果写入 html

标签 javascript jquery html json

因此,我从 Web 服务(使用 Spring 创建)检索 JSON 结果,如下所示:

[
{"id":34,"nachname":"Mozart","vorname":"Wolfgang Amadeus","namenspraedikat":"","instrumentId":0,"geburtsdatum":"27.01.1756","herkunftsland":"Salzburg","sterbedatum":"05.12.1791","plz":null,"ort":null,"straße":null,"handy":null,"fax":null,"email":"","discriminator":"Komponist"}
]

我得到了一个带有以下 HTML 标记的 jsp 文件:

<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script src="js/repertoireController.js"></script>
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<title>Insert title here</title>
</head>
<body>
<div></div>
<div class="komponist-id"></div>
<div class="komponist-name"></div>
</body>
</html>

我想将 JSON 对象中的“nachname”和“id”添加到具有以下类的 div:komponist-id 和 komponist-name

我尝试了以下来自 springIo 指南 https://spring.io/guides/gs/consuming-rest-jquery/ 的内容

$(document).ready(function() {
    $.ajax({
        url: "myurl"
    }).then(function(data) {
       $('.komponist-id').append(data.id);
       $('.komponist-name').append(data.nachname);
    });
});

不幸的是,它不起作用。当我使用 alert(data.id) 时,它显示它未定义,我做错了什么?

最佳答案

问题是你的 JSON 是一个数组。因此,您只需要获取它的第一个对象,例如:data[0],然后获取 id/nachname。

var data = [
{"id":34,"nachname":"Mozart","vorname":"Wolfgang Amadeus","namenspraedikat":"","instrumentId":0,"geburtsdatum":"27.01.1756","herkunftsland":"Salzburg","sterbedatum":"05.12.1791","plz":null,"ort":null,"straße":null,"handy":null,"fax":null,"email":"","discriminator":"Komponist"}
];

$(document).ready(function() {
       $('.komponist-id').append(data[0].id);
       $('.komponist-name').append(data[0].nachname);
});
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="js/repertoireController.js"></script>
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<title>Insert title here</title>
</head>
<body>
<div></div>
<div class="komponist-id"></div>
<div class="komponist-name"></div>
</body>
</html>

关于javascript - 无法将 Web 服务器的 JSON 结果写入 html,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46301737/

相关文章:

JavaScript - 使用撇号或引号?

Javascript - 在循环中向数组添加唯一项但数组保持重复值

javascript - 根据所选值更改 HTML 5 范围 slider

jquery - 具有多个元素的 slider

javascript - 如何在 ReactJS 的 onScroll 事件中操作 DOM?

javascript - 从 POST 请求将文件保存到 Web 服务器

javascript - 根据模式返回 bool 值

将元关键字写入新(浏览器)选项卡的 Javascript 书签

javascript - 如何使用 allowAdditions 使语义 UI 下拉列表工作

javascript - DIV 的 HTML 长度不等于 AJAX 加载的 HTML 长度