Как читать записи из Json Array - PullRequest
0 голосов
/ 23 мая 2019

Я пытаюсь использовать библиотеки Javascript Ext и вызывать службу отдыха, которая возвращает ответ json. Это массив с одним элементом, и он не работает, когда я использую операцию readRecords DataReader (Ext.data.DataReader) для обработки данных json, и она возвращает нулевую ссылку на функцию обратного вызова. Было бы хорошо, если бы вы предоставили некоторую помощь или предложения для решения проблемы.

Я попытался передать массив в качестве аргумента в читателе, и это не помогает.

Ext.namespace("cityDetails");
var a = "http://" + "Url address to get cityDetails";
var e = new Ext.data.ScriptTagProxy({
  callbackParam: "callback",
  url: a
});
var f = {
  fields: [{
    name: "Id"
  }, {
    name: "city"
  }, {
    name: "postcode"
  }]
};
var d = new cityDetails.reader(f, {});
//call back function
var h = function(k, j, m) {
  try {
    // k returns null reference
    if (k != null) {
      alert("PostCode insider else::" + k.jsonObject.postcode)

    }

  }
} catch (l) {
  alert(l)
}
};
var i = this;
e.load({
  1: 1
}, d, h, i)

//readRecords from Data - Json Response an array of one objekt

Ext.extend(cityDetails.reader, Ext.data.DataReader, {
  readRecords: function(b) {
    this.jsonData = b;
    alert("Meta ::" + this.meta);
    //alert("Meta Root::"+this.meta.root);
    var a = false;
    return {
      success: a,
      jsonObject: this.getRoot(b),
      totalRecords: 1
    }
  },
  getRoot: function(d) {
    if (this.meta && this.meta.root) {
      var c = d;
      var a = this.meta.root.split(".");
      for (var b = 0; b < a.length; b++) {
        c = c[a[b]]
      }
      return c
    } else {
      alert("Value Of d in reader::" + d);
      if (d != null) {
        alert("Objects Of d in reader::" + d.jsonObject.postcode);
      }
      return d
    }
  }
})

//Initial call.

cityDetails.reader = function(a, b) {
  a = a || {};
  cityDetails.reader.superclass.constructor.call(this, a, b || a.fields)
};

Пример ответа от службы отдыха показан ниже.

[{
  "Id": "121A",
  "postcode": "1000",
  "city": "ABBA"
}]

Функция обратного вызова k должна возвращать значение ответа Json. Однако он возвращает ноль.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...