来自 URL 的 JSON 数据在 Html 网页中显示 [Object Object]

Posted

技术标签:

【中文标题】来自 URL 的 JSON 数据在 Html 网页中显示 [Object Object]【英文标题】:JSON data from Url showing [Object Object] in Html Webspage 【发布时间】:2022-01-10 12:47:14 【问题描述】:

我有一个由数据组成的 Json Url,在该数据中我想分别打印“标题、日期和注释,但它只显示 [object object]...

我想打印“事件”列表中包含“标题”、“日期”和“注释”的数据

Json 文件的链接:- https://www.gov.uk/bank-holidays.json

我尝试使用事件/标题,但它也不起作用,我是 javascript 新手,我认为我犯了一个基本错误:(

提前致谢


<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>GFG User Details</title>

    <!-- INCLUDING JQUERY-->
    <script src=
"https://code.jquery.com/jquery-3.5.1.js">
    </script>

    <!-- CSS FOR STYLING THE PAGE -->
    <style>
        table 
            margin: 0 auto;
            font-size: large;
            border: 1px solid black;
        

        h1 
            text-align: center;
            color: #006600;
            font-size: xx-large;
            font-family: 'Gill Sans',
                'Gill Sans MT', ' Calibri',
                'Trebuchet MS', 'sans-serif';
        

        td 
            background-color: #E4F5D4;
            border: 1px solid black;
        

        th,
        td 
            font-weight: bold;
            border: 1px solid black;
            padding: 10px;
            text-align: center;
        

        td 
            font-weight: lighter;
        
    </style>
</head>

<body>
    <section>
        <h1>Display Table</h1>

        <!-- TABLE CONSTRUCTION-->
        <table id='table'>
            <!-- HEADING FORMATION -->
            <tr>
                <th>notes</th>
                <th>title</th>
                <th>date</th>
                <th>Division</th>
            </tr>

            <script>
                $(document).ready(function () 

                    // FETCHING DATA FROM JSON FILE
                    $.getJSON("https://www.gov.uk/bank-holidays.json",
                            function (data) 
                        var student = '';

                        // ITERATING THROUGH OBJECTS
                        $.each(data, function (key, value) 

                            //CONSTRUCTION OF ROWS HAVING
                            // DATA FROM JSON OBJECT
                            student += '<tr>';
                            student += '<td>' +
                                value.events + '</td>';

                            student += '<td>' +
                                value.date + '</td>';

                            student += '<td>' +
                                value.notes + '</td>';

                            student += '<td>' +
                                value.division + '</td>'

                            student += '</tr>';
                        );
                        
                        //INSERTING ROWS INTO TABLE
                        $('#table').append(student);
                    );
                );
            </script>
    </section>
</body>

</html>

【问题讨论】:

【参考方案1】:

所以这解决了你的问题@maddy。 问题是您正在访问的内容。您必须访问对象内部的事件数组。所以这里是一个示例

<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>GFG User Details</title>

    <!-- INCLUDING JQUERY-->
    <script src=
"https://code.jquery.com/jquery-3.5.1.js">
    </script>

    <!-- CSS FOR STYLING THE PAGE -->
    <style>
        table 
            margin: 0 auto;
            font-size: large;
            border: 1px solid black;
        

        h1 
            text-align: center;
            color: #006600;
            font-size: xx-large;
            font-family: 'Gill Sans',
                'Gill Sans MT', ' Calibri',
                'Trebuchet MS', 'sans-serif';
        

        td 
            background-color: #E4F5D4;
            border: 1px solid black;
        

        th,
        td 
            font-weight: bold;
            border: 1px solid black;
            padding: 10px;
            text-align: center;
        

        td 
            font-weight: lighter;
        
    </style>
</head>

<body>
    <section>
        <h1>Display Table</h1>

        <!-- TABLE CONSTRUCTION-->
        <table id='table'>
            <!-- HEADING FORMATION -->
            <tr>
                <th>notes</th>
                <th>title</th>
                <th>date</th>
                <th>Division</th>
            </tr>

            <script>
                $(document).ready(function () 
  
                    // FETCHING DATA FROM JSON FILE
                    $.getJSON("https://www.gov.uk/bank-holidays.json",
                            function (data) 
                        
                          var student = '';

                        // ITERATING THROUGH OBJECTS
                        $.each(data, function (key, value) 
                        
                         
                            //CONSTRUCTION OF ROWS HAVING
                            // DATA FROM JSON OBJECT
                            // map the events array in value to have access to the required object
                            $.each(value.events, function(key1, val) 
                            student += '<tr>';
                            student += '<td>' +
                                val.notes + '</td>';
                                student += '<td>' +
                                val.title + '</td>';
                                  student += '<td>' +
                                val.date + '</td>';

                            student += '<td>' +
                                value.division + '</td>'

                            student += '</tr>';
                            );
                        );
                        
                        //INSERTING ROWS INTO TABLE
                        $('#table').append(student);
                    );
                );
            </script>
    </section>
</body>

</html>

【讨论】:

是的,这个对我有用!感谢您的救援jojitoon! :)【参考方案2】:

[object object] 是您要获取的数据的数据类型。要获取实际数据,您需要解析 json-data。 (解析:解压)

当您通过 Internet 获取某些内容时(至少使用 http-api),您会​​收到响应,但该响应无法发送 javascript 对象,因此您可以使用函数对其进行字符串化(例如:JSON.stringify(data)) .

Javascript 的内置 JSON 对象具有执行此操作所需的方法。

要在获取此数据时访问此数据,请使用JSON.parse(data)

【讨论】:

以上是关于来自 URL 的 JSON 数据在 Html 网页中显示 [Object Object]的主要内容,如果未能解决你的问题,请参考以下文章

来自抓取的格式错误的 URL

如何比较来自同一API请求的JSON数据?

使用循环在 HTML 中显示来自 jQuery.ajax 的 json 数据

通过 jQUERY 将 JSON 数据从 URL 解析为 HTML

如何在 Swift 3 中解析来自 URL 的 JSON 数据

来自 json url 的离子显示图像