jquery循环遍历json

2024-01-08

您好,我正在尝试循环遍历 json 文件,如下所示:

$.each(data.playlists.playlist, function(i, item) {

              $("#contentC").append('<p>' + item.id + '</p>'); 
              $("#contentC").append('<p>' + item.title + '</p>'); 
              $("#contentC").append('<p>' + item.url + '</p>'); }
           ); 

json:

{
   "playlists":{
      "playlist":[
         {
            "id":"8391802",
            "title":"Second Playlist",
            "description":"",
            "date":"2011-03-06T18:53:33",
            "size":"10",
            "duration":"2267",
            "streamable":"0",
            "creator":"http:\/\/www.last.fm\/user\/jon21021985",
            "url":"http:\/\/www.last.fm\/user\/jon21021985\/library\/playlists\/4zv5m_second_playlist",
            "image":[
               {
                  "#text":"",
                  "size":"small"
               },
               {
                  "#text":"",
                  "size":"medium"
               },
               {
                  "#text":"",
                  "size":"large"
               },
               {
                  "#text":"",
                  "size":"extralarge"
               }
            ]
         },
         {
            "id":"8372409",
            "title":"All-american Rejects",
            "description":"",
            "date":"2011-02-28T13:30:01",
            "size":"6",
            "duration":"785",
            "streamable":"0",
            "creator":"http:\/\/www.last.fm\/user\/jon21021985",
            "url":"http:\/\/www.last.fm\/user\/jon21021985\/library\/playlists\/4zg6x_all-american_rejects",
            "image":[
               {
                  "#text":"",
                  "size":"small"
               },
               {
                  "#text":"",
                  "size":"medium"
               },
               {
                  "#text":"",
                  "size":"large"
               },
               {
                  "#text":"",
                  "size":"extralarge"
               }
            ]
         }
      ],
      "@attr":{
         "user":"jon21021985"
      }
   }
}

问题是如果只有一个播放列表,数据会发生变化,然后我会得到“未定义”

   {
   "playlists":{
      "playlist":{
         "id":"1319510",
         "title":"Untitled",
         "description":"",
         "date":"2007-10-18T12:17:58",
         "size":"1",
         "duration":"345",
         "streamable":"0",
         "creator":"http:\/\/www.last.fm\/user\/john",
         "url":"http:\/\/www.last.fm\/user\/john\/library\/playlists\/sa52_",
         "image":[
            {
               "#text":"",
               "size":"small"
            },
            {
               "#text":"",
               "size":"medium"
            },
            {
               "#text":"",
               "size":"large"
            },
            {
               "#text":"",
               "size":"extralarge"
            }
         ]
      },
      "@attr":{
         "user":"john"
      }
   }
}

if($.isArray(data.playlists.playlist))
{
             $.each(data.playlists.playlist, function(i, item) {
               displayPlayList(item)
           ); 
}
else
{
      displayPlayList(data.playlists.playlist);
}


    //this way of appending an element is very poor coding practice but 
    //i have done  this way, because u yourself have written this
    // if u want then i can suggest you, how can u optimize this code
    function displayPlayList(item)
    {
                  $("#contentC").append('<p>' + item.id + '</p>'); 
                  $("#contentC").append('<p>' + item.title + '</p>'); 
                  $("#contentC").append('<p>' + item.url + '</p>'); }

    }

Edit

正如 Emmet 指出的那样,您应该始终返回数组。但在您使用该方 json 服务并且它们以该格式返回数据的情况下,这是可以接受的,那么您无能为力

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

jquery循环遍历json 的相关文章

随机推荐

  • 如何使用 Rally Api 和 .NET 创建属于迭代的任务

    我是 Rally API 的新手 只是在使用 Rally RestApi 库创建任务时遇到一些问题 我需要创建一个任务 使用 NET 并将其与用户故事相关联 其中用户故事属于某个迭代 我是否必须先获取用户故事 然后向其中添加任务 我该怎么做
  • 如何使用 javascript 代码突出显示 JQM-DateBox 日历中的日期

    如何用两种不同的颜色突出显示日历中的单元格 即一些单元格为红色 其他单元格为绿色 使用JavaScript 一些代码 javascript 代码 单击按钮时显示日历 并且应该为日历设置日期 但事实并非如此
  • 通过 /dev/pts 在另一个终端中执行命令

    我有一个使用的终端STDIN 3 proc xxxx fd 0 gt dev pts 3 所以如果 在另一个终端 我这样做 echo do something command gt dev pts 3 该命令显示在我的第一个 pts 3 终
  • 用于更改安装项目的 ProductVersion 的预构建事件只有在构建之后才会生效

    我已按照描述的步骤操作here https stackoverflow com questions 306233 how to programatically change a projects product version使用预构建事件
  • 自动调整TableLayoutPanel的大小

    我有一个以编程方式创建的 TableLayoutPanel 它工作正常 但我找不到一些东西 如何在调整表单大小时使其自动调整列大小 面板设置为 Dock Top 当我调整表单大小而不是按百分比调整每列大小时 只有最后一列会增长 为此我能做什
  • DownloadString 给出了似乎在浏览器中工作的 https url 的超时

    我正在尝试将此 URL 中的内容获取到我的程序中 https data mtgox com api 2 BTCUSD money ticker https data mtgox com api 2 BTCUSD money ticker 在
  • 无法修复 Android Proguard 返回错误代码 1 错误

    当我尝试在我的 Android 应用程序中使用 proguard 时 只需添加 proguard config sdk dir tools proguard proguard android txt 对于我的 project propert
  • Pycharm 有交互式 Python 解释器吗?

    我是最近从其他 IDE 切换到的 Pycharm 新用户 我的一个问题是关于交互式 python 解释器 它是一个 窗口 我可以在运行脚本后输入变量来检查它们 Pyscripter 有一个叫做 Python 解释器 的东西 我知道 Pych
  • Gson自定义反序列化

    我正在使用 Gson 创建和解析 JSON 但我遇到了一个问题 在我的代码中我使用这个字段 Expose private ArrayList
  • 关闭 PDO 语句

    我最近决定从 MySQLi 跳到 PDO 但有一些关于 PDO 准备好的语句的问题困扰着我 在 MySQLi 中 我会编写一个典型的获取查询 如下所示 db new mysqli localhost user pass mydb sql S
  • getBoundingClientRect() 在 XUL 中返回零

    我的 Firefox 扩展有问题 我有一个 XUL 弹出面板 其中包含用于标签云的 hbox 以及用于将 div 添加到此 hbox 的 JS 代码
  • BigQuery 日期分区视图

    BigQuery 允许您创建日期分区表 https cloud google com bigquery docs creating partitioned tables https cloud google com bigquery doc
  • 在 Google 地图中使用 3D

    我想创建一个 web 应用程序 我可以在其中显示我自己的 geotiffs NDVI 和其他数据层以及 3D 几何图形 提供 2D 图块和纹理 3D 形状的无缝渲染 就像maps google com 在中实现的那样从 地图 视图切换到 地
  • 验证失败时重新填充单选按钮

    我有一个从数据库中提取数据的表单 如果它是一个输入框 代码可以正常工作 但我无法获取单选按钮的最新 POST 数据 这适用于输入文本框 我在第一次加载时获得从数据库中提取的默认值 并且我可以从用户在验证失败时修改输入框获得新的输入 如果有
  • 如何使用SAX PARSER解析android中的html内容

    xml中有描述标签 它包含 html 标签 我在android中使用SAX解析器来解析 但是 当它从描述标签获取数据时 它不会获取 html 内容 也不会获取任何标签 那么我如何解决使用 SAX 解析器从 XML 解析 html 内容的问题
  • 当相机之间的角度太大时,OpenCV 立体图像校正无法正常工作

    我想收集位于两个摄像机焦点处的身体的高度数据 这就是我的立体声设置的样子 当我使用标准 cv2 函数计算图像的校正版本时 它看起来非常糟糕 当我对相机并行使用类似的设置时 它起作用了 我计算了外线 它们似乎是正确的 However the
  • 需要帮助重写 WPF 按钮样式背景颜色。

    我为自定义按钮设置了以下代码 但我想更改单个按钮的背景
  • Phonegap/ios7 - 重新加载时未触发 deviceready 事件

    我们的 Phonegap 混合应用程序在首次加载时工作正常 在这种情况下 很明显 deviceready 事件正确触发并且应用程序启动 没有问题 我们需要在某个时候重新加载应用程序 我们只需对index html 主应用程序html 文件
  • 在容器创建时设置docker镜像用户名?

    我有一个 OpenSuse 42 3 docker 映像 已将其配置为运行代码 该映像有一个名为 myuser 的用户 root 除外 该用户是我在初始映像生成过程中通过 Dockerfile 创建的 我有三个脚本文件 它们根据用户所在的操
  • jquery循环遍历json

    您好 我正在尝试循环遍历 json 文件 如下所示 each data playlists playlist function i item contentC append p item id p contentC append p ite