0

考虑以下 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);
4

2 回答 2

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 对象的样子,您能否在您的问题中添加一个示例对象,以便更清楚您在问什么?

于 2012-09-07T02:31:01.750 回答
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';
    });
于 2012-09-07T02:43:35.923 回答