2013-03-30 101 views
0

我使用jQuery ajax从PHP脚本获取存储在MySQL数据库中的数据。我解析以JSON格式返回的数据并将其显示在表中。在JSON内部访问JSON元素

问题是其中一个元素以json格式存储,所以MySQL返回整个数据并以相同的方式显示。

$.each(data, function (key, element) { 
    $('table').append('<tr><td>' + element.aid + '</td><td>' + element.userid + '</td><td>' + element.atitle + '</td><td>' + element.atype + '</td><td>' + element.adata + '</td></tr>'); 
}); 

element.adata正在显示以下列方式:

{ 
    "click_title":"GO", 
    "links": { 
     "commonlink":"http:\/\/bookings.com", 
     "alllinks": [ 
      [{ 
      "link1":"http:\/\/xyz1.com\/get\/a", 
      "link2":"http:\/\/www.anotherwebsite1.com\/c\/t", 
      "link3":"http:\/\/www.newsite1.com\/v\/h" 
      },{ 
      "link1":"http:\/\/xyz2.com\/get\/a", 
      "link2":"http:\/\/www.anotherwebsite2.com\/c\/t", 
      "link3":"http:\/\/www.newsite2.com\/v\/h" 
     }],[{ 
      "link1":"http:\/\/xyz3.com\/get\/a", 
      "link2":"http:\/\/www.anotherwebsite3.com\/c\/t", 
      "link3":"http:\/\/www.newsite3.com\/v\/h" 
     }] 
     ] 
    } 
} 

如何访问的链接,这样我可以以更好的方式显示出来?

回答

1

你可以使用$.parseJSON()函数解析JSON字符串为JavaScript对象:

var data = $.parseJSON(element.adata); 

,然后访问各个元素。例如:

data.links[0][0].link1 

或者如果您事先不知道元素的数量,也可以使用$ .each循环遍历它们。

+0

我能做到这里面​​,像目前我在一个表中显示element.adata - '​​' + element.adata + '' –

+0

是的,可以。第一步是使用$ .parseJSON函数将JSON字符串解析为一个javascript变量。然后根据您想要显示的内容和方式,您可以直接访问生成的对象的元素。 –

+0

它表示数据在萤火虫中为空 –