代码之家  ›  专栏  ›  技术社区  ›  Hasitha Jayawardana

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

  •  1
  • Hasitha Jayawardana  · 技术社区  · 7 年前

    我需要退货 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 回复  |  直到 7 年前
        1
  •  3
  •   Robby Cornelissen    7 年前

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

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

    或者你可以做更高一级的作业,这样你就不必改变你的 renderDetails() 功能:

    var userDetails = data[0];
    

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