用嵌入式数组解析JSON对象,怎么做?

时间:2012-09-07 02:22:26

标签: javascript ajax arrays json parsing

考虑以下Javascript。我正在解析的JSON对象上有一个名为History的数组。 History(resp [0] .History)数组中的每个对象都有一个UniqueID属性。如何获取阵列中每个对象的UniqueID属性?

// Retrieve individual licence information.
function loadLicenceDetails(uniqueID) {
    document.body.style.cursor = 'wait';
    $('#loadingLicenceDiv').modal('show');
    $.ajax({
        type: 'POST',
        contentType: 'application/json; charset=utf-8',
        url: '/JadeLicensingWebService/default.asmx/GetLicenceDetails',
        dataType: 'json',
        data: '{"licenceHolder":"' + $.cookie("companyName") + '","uniqueID":"' + uniqueID + '"}',
        success: function (data) {
            resp = $.parseJSON(data.d);
            $('#inputLicenceName').val(resp[0].LicenceName);
            $('#licenceKeyInput').val(resp[0].LicenceKey);
            $('#selectProductType').val(resp[0].Product);
            $('#selectDuration').val(resp[0].Duration);
            $('#startDateInput').val(resp[0].StartDate);
            $('#expiryDateInput').val(resp[0].ExpiryDate);
            $('#orderedByInput').val(resp[0].OrderedBy);
// How do I get at the History.UniqueID ?
            $('#notesInput').val(resp[0].Notes);
            $('#licenceInfoHeader').html('<strong>#' + uniqueID + '</strong> - ' + resp[0].LicenceName);

2 个答案:

答案 0 :(得分:1)

假设你的JSON看起来像:

{
  "History": [
    {
      "UniqueId": "abc"
    },
    {
      "UniqueId": "def"
    },
    {
      "UniqueId": "ghi"
    },
  ]
}

你可以这样做:

var ids = []; // Make an array to hold the IDs
// Iterate over History items
for (var i = 0; i < resp.History.length; i++) {
  var item = resp.History[i];
  ids.push(item.UniqueId); // Put each ID in the array
}

如果那不是您的JSON对象的样子,您可以在问题中添加一个示例对象,以便更清楚您所要求的内容吗?

答案 1 :(得分:0)

使用此解决:

$('#licenceHistoryText').val(resp[0].History[0].DateIssued);

编辑,最终解决方案:

    $.each(resp[0].History, function (i, obj) {
        document.getElementById("licenceHistoryText").value += obj.DateIssued + ' - ' + obj.LicenceName + ' [' + obj.LicenceKey + ']\n';
    });