我需要将返回的JSON数据放在HTML表单中.我使用Web服务调用数据库并获取JSON数据.我想要的是将这些JSON数据放入HTML输入字段.
示例JSON数据(作为数组返回)
[{"username":"demo","email":"demo@gmail.com","password":"123"}]
List.jsp中的代码
<form>
Enter Username:<br>
<input type="text" id="usernameEn" name="username"><br>
<button id="btnGet">Get</button>
</form>
<br><br>
<form>
Username:<br>
<input type="text" id="username" name="username"><br>
Email:<br>
<input type="text" id="email" name="email"><br><br>
Password:<br>
<input type="text" id="password" name="password"><br><br>
</form>
<script type="text/javascript">
$(document).ready(function()
{
$("#btnGet").click(function(event)
{
event.preventDefault();
$.ajax({
type: 'GET',
url: "http://localhost:8080/WebServiceTest2/webresources/users/get/" + $('#usernameEn').val(),
dataType: "json",
success: function(data) {
console.log(data);
var userDetails = data;
renderDetails(userDetails);
},
error: function(jqXHR, textStatus, errorThrown) {
alert('Error: ' + textStatus);
}
});
});
});
function renderDetails(data)
{
$('#username').val(data.username);
$('#email').val(data.email);
$('#password').val(data.password);
};
</script>
解决方法:
您的REST服务正在返回一个数组,因此要填充您必须访问该数组的第一个元素的表单:
$('#username').val(data[0].username);
$('#email').val(data[0].email);
$('#password').val(data[0].password);
或者您可以更高级别地完成任务,这样您就不必更改renderDetails()函数:
var userDetails = data[0];