通过字段名称获取JSON数组数据

时间:2018-07-19 08:27:56

标签: javascript jquery asp.net ajax model-view-controller

我试图通过像这样的data.name字段名称获取JSON数据,并且它返回所需的数据,但是我在数组中有25个字段,我想使用data + "." + variable动态创建它,当我提醒它返回[Object object].name时,如何使它可执行?

我尝试了很多方法,但都失败了,请帮助我。

$.ajax({
  type: "Get",
  url: "/Home/Report_Data",
  datatype: "json",
  dataSrc: "",
  contentType: 'application/json; charset=utf-8',
  data: {
    'Arrnagement': Arrnagement
  },
  success: function(data) {
    var result = getElementsById("LD_name LD_Loan_Type LD_id LD_Full_Name_AR LD_GENDER LD_BIRTH_INCORP_DATE LD_PS_MOTHER_NAME LD_Street_AR LD_TEL_MOBILE LD_EMPLOY_STATUS_D LD_EMPLYRS_Name LD_MARITAL_STATUS LD_PS_PL_OF_BIR_AR LD_wifeName LD_Effective_Interest_Rate LD_Contract_amount LD_Repayment_Amount LD_Sector_name LD_NUM_REPAYMENTS LD_Loan_Maturity LD_Orig_Contract_Date LD_Loan_CCY LD_Arrangement LD_COLLATERAL_TYPE LD_Description LD_COLLATERAL_VALUE LD_COLLATERAL_Currency LD_GUARANTOR_ID LD_NATIONALITY LD_G_Full_Name_En LD_G_DATE_OF_BIRTH LD_G_PLACE_OF_BIRTH LD_G_MOTHER_NAME_EN LD_HOUSING_LOAN_AREA_CLASS LD_HOUSING_PROPERTY_NATURE LD_HOUSING_LOAN_PURPOSE LD_HOUSING_PROPERTY_AREA");
    var jid;
    for (var i = 0; i < result.length; i++) {
      jid = (result[i].id.substring(3));
      var resulting = data[0].jid;
      alert(resulting);
      if (result[i].innerHTML = data[0].jid != "undefined") {
        result[i].innerHTML = data[0].jid;
      } else {
        result[i].innerHTML = "";
      }
    }

//jid = name;
//data[0].name returns "Joun"
//data[0]+"."+jid returns [object object].name but i need it to return "Joun"

4 个答案:

答案 0 :(得分:0)

尝试给出data[0][jid],我们也可以在括号中给出一个变量以获取数据

希望它能起作用

答案 1 :(得分:0)

这应该有效。访问对象属性时更改了点符号。

$.ajax({
            type: "Get",
            url: "/Home/Report_Data",
            datatype: "json",
            dataSrc: "",
            contentType: 'application/json; charset=utf-8',
            data: { 'Arrnagement': Arrnagement },
            success: function (data) {

                var result = getElementsById("LD_name LD_Loan_Type LD_id LD_Full_Name_AR LD_GENDER LD_BIRTH_INCORP_DATE LD_PS_MOTHER_NAME LD_Street_AR LD_TEL_MOBILE LD_EMPLOY_STATUS_D LD_EMPLYRS_Name LD_MARITAL_STATUS LD_PS_PL_OF_BIR_AR LD_wifeName LD_Effective_Interest_Rate LD_Contract_amount LD_Repayment_Amount LD_Sector_name LD_NUM_REPAYMENTS LD_Loan_Maturity LD_Orig_Contract_Date LD_Loan_CCY LD_Arrangement LD_COLLATERAL_TYPE LD_Description LD_COLLATERAL_VALUE LD_COLLATERAL_Currency LD_GUARANTOR_ID LD_NATIONALITY LD_G_Full_Name_En LD_G_DATE_OF_BIRTH LD_G_PLACE_OF_BIRTH LD_G_MOTHER_NAME_EN LD_HOUSING_LOAN_AREA_CLASS LD_HOUSING_PROPERTY_NATURE LD_HOUSING_LOAN_PURPOSE LD_HOUSING_PROPERTY_AREA");

                var responseData = data[0];
                var jid;
                for (var i = 0; i < result.length; i++) {
                    jid = (result[i].id.substring(3));
                    var resulting = responseData[jid];
                    alert(resulting);
                    if (responseData[jid]) {
                        result[i].innerHTML = responseData[jid];
                    }
                    else {
                        result[i].innerHTML = "";
                    }
                }

答案 2 :(得分:0)

如果foo.bar,您将在对象foo上获得一个名为“ bar”的属性。如果您有一些变量const bar = "qux",并且想要访问与bar value /“ qux” /同名的某个对象的属性,则只需使用方括号-foo [bar],将与调用foo.qux相同;因此,在您的情况下,您只需要使用data[0][jid]而不是data [0].jid,假设jid包含的字符串也是data[0]中的键。

答案 3 :(得分:0)

您只需执行data[0][variableName],这将返回您想要的数据。例如。如果数据具有json字符串[{ "Name" : "Jane Doe"}],则可以这样执行。

var variableName = "Name";
console.log(data[0][variableName])

这将返回“ Jane Doe”。 如果您的字段名在数组中,则可以使用$.eachfor loop在字段名中循环。 例如,假设您的json字符串为[{"First_Name" : "Jane", "Last_Name" : "Doe", "Age" : 32}],则可以从json字符串中获取所有值。

var FieldNames = ["First_Name" , "Last_Name", "Age"]
$.each(FieldNames, function(i,item) {
    console.log(data[0][item])
}

OR

var FieldNames = ["First_Name" , "Last_Name", "Age"]
for(var i = 0; i < FieldNames.length; i++) {
    console.log(data[0][FieldNames[i]])
}