JavaScript引入并处理json数据格式文件

需求

json数据在另外一个.json的文件中,在另一个html文件中引入并处理,然后在页面中动态的显示这些数据。

数据准备

1.json数据文件

data = [
      {
        "goodUrl": "xxx",
        "title": "xxx",
        "imgUrl": "xxx",
        "price": "xxx"
      },
      {
        "goodUrl": "xxx",
        "title": "xxx",
        "imgUrl": "xxx",
        "price": "xxx"
      },
      {
        "goodUrl": "xxx",
        "title": "xxx",
        "imgUrl": "xxx",
        "price": "xxx"
      }
 ]

2.一个jQuery.js文件

数据处理

首先我们需要在html导入这份json数据,导入形式就像引入JavaScript外部脚本一样,在<head></head>标签中导入即可,src为数据文件所在位置:

<script type="text/javascript" src="./data/goodData.json"></script>

然后在页面中自定义<script></script>标签中写如下代码来获取数据,这里先做一个演示怎么取数据

<script>
    window.onload = goodList = () => {
      console.log(data.length);
      for (let item of data) {
        console.log(item.goodUrl);//获取地址
        console.log(item.title);//获取标题
        ...
      }
    }
</script>

其中:

这里的data就是在json文件中定义的数据名字

window.onload让页面加载的时候就开始执行

通过以上的方式就可以解决获取数据的问题,下面就是如何添加到页面

首先看一下页面结构:

<body>
    <div class="case-content-bg case-content-info">
        <div class="case-box">
            <h3 class="case-box-title">
                <em>优惠正版软件下载</em>
                <span>提供各种正版软件优惠下载</span>
            </h3>
            <div class="clearfix">
                <div class="case-wrapper clearfix" id="goods-list">
                    <div class="case-item">
                        <div class="case-item-bg case-item-bg-office"></div>
                        <div class="case-item-title">动态数据</div>
                        <div class="case-item-doc">
                            <span style="color:red">动态数据</span>
                            <p>
                                <a href="动态数据" target="_blank">查看详情</a>
                                <a href="动态数据" target="_blank">前往购买</a>
                            </p>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
</body>

其中的动态数据就是需要从json中获取的,那么使用刚才的办法,只需要遍历数据即可取到,然后通过innerHTML方法就可以向页面里面添加,具体的代码如下:

    <script>
        // 页面加载的时候开始计算数据
        window.onload = goodList = () => {
            let goodItem = "";
            for (let item of data) {
                goodItem += "<div class='case-item'>" +
                    "<div class='case-item-bg case-item-bg-office'></div>" +
                    "<div class='case-item-title'>" + item.title + "</div>" +
                    "<div class='case-item-doc'>" +
                    "<span style='color:red'>¥ " + item.price + "</span>" +
                    "<p>" +
                    "<a href=" + item.goodUrl + '?' + cid + "target='_blank'>查看详情</a>" +
                    "<a href=" + item.goodUrl + '?' + cid + "target='_blank'>立即购买</a>" +
                    "</p>" +
                    "</div>" +
                    "</div>";
            }
            $("#goods-list")[0].innerHTML = goodItem;
        }
    </script>

这里使用for (let item of data)来遍历,而不是for-i变量,因为取到的数组的每一项是object格式,然后使用item.属性名即可取值。

$("#goods-list")[0].innerHTML = goodItem;其中goods-list为需要添加的goodItem模块的父级的ID值。goodItem后面是+=

完整代码

具体完整代码如下:

<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>优惠正版软件下载-北忘山</title>
    <link href="css/style.css" rel="stylesheet" type="text/css" />
    <script src="./js/jquery.js"></script>
    <!-- 引入数据 -->
    <script type="text/javascript" src="./data/goodData.json"></script>
    <script>
        const cid = 'esujndjk';
        // 页面加载的时候开始计算数据
        window.onload = goodList = () => {
            let goodItem = "";
            for (let item of data) {
                goodItem += "<div class='case-item'>" +
                    "<div class='case-item-bg case-item-bg-office'></div>" +
                    "<div class='case-item-title'>" + item.title + "</div>" +
                    "<div class='case-item-doc'>" +
                    "<span style='color:red'>¥ " + item.price + "</span>" +
                    "<p>" +
                    "<a href=" + item.goodUrl + '?' + cid + "target='_blank'>查看详情</a>" +
                    "<a href=" + item.goodUrl + '?' + cid + "target='_blank'>立即购买</a>" +
                    "</p>" +
                    "</div>" +
                    "</div>";
            }
            $("#goods-list")[0].innerHTML = goodItem;
        }
    </script>
</head>
<body>
    <div class="case-content-bg case-content-info">
        <div class="case-box">
            <h3 class="case-box-title">
                <em>优惠正版软件下载</em>
                <span>提供各种正版软件优惠下载</span>
            </h3>
            <div class="clearfix">
                <div class="case-wrapper clearfix" id="goods-list">
                    <div class="case-item">
                        <div class="case-item-bg case-item-bg-office"></div>
                        <div class="case-item-title"></div>
                        <div class="case-item-doc">
                            <span style="color:red"></span>
                            <p>
                                <a href="" target="_blank">查看详情</a>
                                <a href="" target="_blank">前往购买</a>
                            </p>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
</body>
</html>

© 版权声明
THE END
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容