【问题标题】:Parse local JSON file with jQuery and Javascript使用 jQuery 和 Javascript 解析本地 JSON 文件
【发布时间】:2013-07-30 10:36:02
【问题描述】:

我正在尝试解析我计算机上的 JSON 文件。我想解析它。 JSON 文件的结构如下:

{
  "sites": {
    "site": [
      {
        "id": "01",
        "name": "Sito 1",
        "src": "localhost/root/coupon/sito1",
        "expiryDate": "29 Ago 2013"
      },
      {
        "id": "02",
        "name": "Sito 2",
        "src": "localhost/root/coupon/sito2",
        "expiryDate": "30 Ago 2013"
      },
      {
        "id": "Sito 3",
        "name": "Sito 3",
        "src": "localhost/root/coupon/sito2",
        "expiryDate": "31 Ago 2013"
      }
    ]
  }
}

在我的 html 中,我导入了 jQuery 库,并创建了一个在页面加载时加载的函数。代码如下:

<!DOCTYPE html>
<html lang="it">
    <head>
        <meta charset="utf-8" />
        <meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0; user-scalable=0;"/>  
        <title>Lista coupon</title>
        <script type="text/javascript" src="jquery-1.9.1.min.js"></script>
        <script type="text/javascript" charset="utf-8">
            function loadJson() {
                window.alert("Carico il contenuto del file JSON per popolare la lista");
                $(document).ready(function()
                    {
                        $.getJSON('data.json', function(json) {
                            console.log(json);
                        });
                    });
                }
        </script>
    </head>
    <body onload="loadJson();">
        <div id="header">
            <h1>Lista coupon salvati</h1>
        </div>
        <div id="content">
            <p>Di seguito trovi tutte le promozioni salvate</p>

        </div>
        <div id="footer">

        </div>
    </body>
</html>

现在我在 firebug 控制台上看到它可以正确读取 JSON 文件,但我不知道如何解析这个 JSON。我在谷歌搜索,但我发现了很多使用远程 JSON 的示例。你能帮我理解如何解析本地 JSON 文件吗? 谢谢

PS:注意我在这里发布的网站是为移动浏览器制作的。

【问题讨论】:

  • getJson 向 服务器 而非您的计算机发出 HTTP 调用。阅读文档api.jquery.com/jQuery.getJSON
  • 对 'obj' 变量执行 console.log 并检查它是如何构建的。会让你明白你应该如何使用它。

标签: javascript jquery json parsing


【解决方案1】:

getJSON 会为你解析。

只需删除 var obj = $.parseJSON(json); 行(因为这会将对象字符串化并尝试将其解析为 JSON(它不会是)。

【讨论】:

  • 好的,我删除了它,但现在我如何才能访问该对象?现在我想“捕获”条目“name”和“src”
  • json 是对象。像任何其他人一样访问它。 (json.sites.etc)
  • 所以我只需要简单地使用 json.name 和 json.src 来获取名称和链接吗?我用警报尝试了它,但它说我未定义......
  • 不,因为namesrc 不是存储在json 中的对象的属性。您必须深入了解层次结构。您可能想阅读Objects in JavaScript
  • 使用 json.sites.site[0].src ,json.sites.site[1].src
【解决方案2】:

我认为您不需要解析 json。由于您使用的是 $.getJSON(),它将自动解析 json。

【讨论】:

  • 使用 json.sites.site[0].src ,json.sites.site[1].src
  • 现在如何将 name 和 src 的值放入一个数组中?使用 $.each 对吗?
  • 好的,我如何识别我正在阅读“name”或“src”或“id”或“expiryDate”?我做到了$.each(json, function(key, value) { });
  • $.each(json.sites.site,function(index,value){ alert(value.src);})
猜你喜欢
  • 2011-12-05
  • 2012-06-22
  • 2016-12-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-25
  • 2020-05-07
  • 2011-09-24
相关资源
最近更新 更多