将JSON从Rest服务转换为数组

时间:2012-03-26 15:41:06

标签: jquery json data-binding

我在将JSON数据绑定到KENDO饼图时遇到问题。 我有一个服务从服务器返回JSON数据,我的服务的URL如下

url:“/ DomainService / CompanyProfileDomainService.svc / json / GetCompanyProfileContactedViews”

当我在firefox中粘贴此链接时,我得到以下JSON数据

{"GetContactedChartViewsResult":{"TotalCount":3,"RootResults":[
{"ContactedID":1,"ContactedName":"No","Occurances":5},
{"ContactedID":2,"ContactedName":"Under Consideration","Occurances":1},
{"ContactedID":3,"ContactedName":"Follow Up","Occurances":11}]}}

我只需要来自JSON的“Occurances”,我真的很想知道如何获得它。

在我的脑海中有一个选择是创建一个数组,我可以在其中注入所有“Occurances”,然后将该数组绑定到饼图,但我不知道如何从JSON创建这个数组,因为我非常新的JQuery。

可以请任何人帮我解决问题。非常感谢。

3 个答案:

答案 0 :(得分:0)

for(var i = 0; i < data.GetContactedChartViewsResult.TotalCount; i++) {
   alert(data.GetContactedChartViewsResult.RootResults[i].Occurances);
}

你应该能够以这种方式迭代:)

答案 1 :(得分:0)

假设result拥有该对象,您可以像这样访问它:result.GetContactedChartViewsResult.RootResults[0].Occurances

答案 2 :(得分:0)

要使用JQuery填充数组,我会使用$.get检索数据,然后使用$.each迭代对象数组。异步操作完成后,arrayOfValues应包含所有出现的内容。

    var url = '/DomainService/CompanyProfileDomainService.svc/json/GetCompanyProfileContactedViews';
    var arrayOfValues = [];
    $.get(link, function (ajaxData) {

        $.each(ajaxData.GetContactedChartViewsResult.RootResults, function (i, v) {
            arrayOfValues[i] = v.Occurances;
        });
        alert(arrayOfValues.length); // proves the length of the array. 
    });