有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何将返回的JSON数据放在HTML表单中

我需要将返回的JSON数据放在HTML格式中。我使用web服务调用数据库并获取JSON数据。我想要的是将这些JSON数据放入HTML输入字段中

示例JSON数据(作为数组返回)

[{"username":"demo","email":"demo@gmail.com","password":"123"}]

列表中的代码。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>

共 (1) 个答案

  1. # 1 楼答案

    您的REST服务正在返回一个数组,因此要填充表单,您必须访问数组的第一个元素:

    $('#username').val(data[0].username);
    $('#email').val(data[0].email);
    $('#password').val(data[0].password);
    

    或者,您可以执行更高级别的赋值,这样就不必更改renderDetails()函数:

    var userDetails = data[0];
    

    最好还添加一个检查,查看返回的数组是否为空