用JQuery解析获取JSON数据

来源:互联网 发布:淘宝上买steam游戏后果 编辑:程序博客网 时间:2024/05/17 09:31

JSON 是一种比较方便的数据形式,下面使用$.getJSON方法,实现获得JSON数据和解析,都挺方便简单的。从http://api.flickr.com/services/feeds/photos_public.gne?tags=cat&tagmode=any&format=json&jsoncallback=? 这个地址得到JSON数据 并且分析里面的结构,生成图片和相关链接等:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Insert title here</title><script type="text/javascript" src="../js/jquery-1.8.3.min.js"></script><script type="text/javascript">$(function(){    var url="http://api.flickr.com/services/feeds/photos_public.gne?tags=cat&tagmode=any&format=json&jsoncallback=?"   // 使用getJSON方法取得JSON数据   $.getJSON(    url,    // 处理数据 data指向的是返回来的JSON数据    function(data){            // 生成标题和标题连接            var tit="<a href='"+ data.link +"'>"+data.title +"<\/a>";            $("h1").html(tit);                 // 出现在指定位置H1 内            $("#ginfo").find("p").eq(0).html(data.modified);            $("#ginfo").find("p").eq(1).html(data.generator);            var lis="";            // li 列表项目            $(data.items).each(function(i,ite){                    // 遍历JSON数据得到所需形式                lis+="<li>";                lis+="<a href='"+ ite.link +"'><img src='"+ite.media.m +"' title='"+ ite.title +"'><\/><\/a>";               lis+="<div>";              lis+=ite.description;                             lis+="<\/div><\/li>";                               })            $("ul").html(lis);                  // 将遍历出来的数据呈现在所需位置            $("li").hover(function(){$(this).addClass("hov")}, function(){$(this).removeClass("hov")});       }    )})       </script></head><body><div class="main"><div class="ginfo" id="ginfo"><h1></h1><p></p></div><ul></ul></div></body></html>

最后说一下JSON数据的格式,其实它就是个文本文件,可以方便的解析,也可以直接查看。

({       "title": "Recent Uploads tagged cat",        "link": "http://www.flickr.com/photos/tags/cat/",        "description": "",        "modified": "2009-08-03T01:50:45Z",        "generator": "http://www.flickr.com/",        "items"       {            "title": "DSC06844",            "link": "http://www.flickr.com/photos/g_bugel/3783605340/",            "media": {"m":"http://farm3.static.flickr.com/2638/3783605340_a3cfc9eeb9_m.jpg"},            "date_taken": "2009-07-06T07:27:59-08:00",            "description": "<p><a href=\"http://www.flickr.com/people/g_bugel/\">g.bugel<\/a> posted a photo:<\/p> <p><a href=\"http://www.flickr.com/photos/g_bugel/3783605340/\" title=\"DSC06844\"><img src=\"http://farm3.static.flickr.com/2638/3783605340_a3cfc9eeb9_m.jpg\" width=\"240\" height=\"180\" alt=\"DSC06844\" /><\/a><\/p> ",            "published": "2009-08-03T01:50:45Z",            "author": "nobody@flickr.com (g.bugel)",            "author_id": "38658309@N00",            "tags": "china cat feline beijing 2009 chinalab chinalab2009"      },{......});