使用JSON数据,尝试解析嵌套数据

时间:2012-02-23 04:53:04

标签: json

我只是使用JSON数据并正在使用jQuery和Ajax请求。非常基本的东西,但这是我的问题。

我有一个基本数据集,我用它来进行时间跟踪。我知道如何解析这样的简单JSON数据:

{
        "end" : "1/18/2011",
        "start" : "1/18/2011",
        "task" : "Code Review",
},

这是我试图解析的更复杂的东西,我试图将“时间”数据拉出来。

  {
        "end" : "1/17/2011",
        "start" : "1/17/2011",
        "task" : "Exclusive Brands",
        "time" : {
           "analysis" : 4,
           "documentation" : 3,
           "meetings" : 2
        }

这是我用来解析简单数据的脚本的代码:

$(function() {
    $('.load').click(function(){
        $.getJSON("data.js",function(data){
            $.each(data.timesheet, function(i,data){
            var div_data ="<div class='box'>"+data.start+" "+data.task+"</div>";
            $(div_data).appendTo("#time-tracking");
                });
            }
        );
        return false;
    });
});

我的问题是解析time数据的格式是什么,或者解析嵌套在time元素中的信息的最佳方法是什么?

任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:4)

JSON字符串将被解析为一个对象。解析时,time是一个对象的关键。您可以通过点运算符(.)检索此对象的值。

data = JSON.parse('{"end":"1/17/2011", "start":"1/17/2011", "task":"Exclusive Brands", "time": {"analysis":4, "documentation":3, "meetings":2 } }')
// => obj
data.time.analysis
// => 4

在您的情况下,您可以使用data.time.meetings从远程服务器访问您的数据。

答案 1 :(得分:0)

除非我非常错误,因为jquery已经为您将数据转换为javascript,您应该能够像访问javascript对象那样访问时间,如下所示:

var analysis = data.time.analysis;
var documentation =  data.time.documentation;
var meetings = data.time.meetings;

等...