繁体   English   中英

在JavaScript中循环JSON变量

[英]Loop json variable in javascript

我有一个变量,我在其中获取json值。 该值来自4个表。 我想在分配值时循环每个表。 下面是我的代码

var dataResponse = JSON.parse(response);

我从表中获取值

dataResponse.Table[0]dataResponse.Table[1] ....

如何在javascript中循环播放。 请帮忙

我的json

{
  "Table": [{
    "JOB_PROGRESS_ID": 4.0,
    "SPAN_ID": "MUMUMBMUKLYNSPN001_BU",
    "LINK_ID": "12345678",
    "SPAN_TYPE": "INTERCITY",
    "NE_SPAN_LENGTH": 200.0,
    "HOTO_OFFERED_LENGTH": 26.0,
    "LIT_OFFERED_LENGTH": 30.0,
    "HOTO_ACTUAL_LENGTH": 20.0,
    "LIT_ACTUAL_LENGTH": 15.0,
    "HOTO_OFFERED_DATE": null,
    "HOTO_ACCEPTENCE_DATE": null,
    "LIT_ACCEPTENCE_DATE": null,
    "APPROV_REJECT_REMARK": null,
    "ISABDMISSING": 1.0,
    "JOB_ID": 1.0,
    "MAINTENANCEZONECODE": "INMUKLYN01"
  }],
  "Table1": [{
    "NUMBEROFDUCTS": 3,
    "ROUTETYPE": "HDD",
    "ASBUILT_LENGTH": 0.09,
    "SPAN_ID": "MUMUMBMUKLYNSPN001_BU"
  }, {
    "NUMBEROFDUCTS": 3,
    "ROUTETYPE": null,
    "ASBUILT_LENGTH": 0.33,
    "SPAN_ID": "MUMUMBMUKLYNSPN001_BU"
  }, {
    "NUMBEROFDUCTS": 7,
    "ROUTETYPE": "OT",
    "ASBUILT_LENGTH": 12.41,
    "SPAN_ID": "MUMUMBMUKLYNSPN001_BU"
  }, {
    "NUMBEROFDUCTS": 3,
    "ROUTETYPE": "OT",
    "ASBUILT_LENGTH": 0.01,
    "SPAN_ID": "MUMUMBMUKLYNSPN001_BU"
  }, {
    "NUMBEROFDUCTS": 7,
    "ROUTETYPE": "HDD",
    "ASBUILT_LENGTH": 0.46,
    "SPAN_ID": "MUMUMBMUKLYNSPN001_BU"
  }, {
    "NUMBEROFDUCTS": 8,
    "ROUTETYPE": "HDD",
    "ASBUILT_LENGTH": 0.02,
    "SPAN_ID": "MUMUMBMUKLYNSPN001_BU"
  }, {
    "NUMBEROFDUCTS": 6,
    "ROUTETYPE": "OT",
    "ASBUILT_LENGTH": 0.33,
    "SPAN_ID": "MUMUMBMUKLYNSPN001_BU"
  }, {
    "NUMBEROFDUCTS": 7,
    "ROUTETYPE": "CLAMP",
    "ASBUILT_LENGTH": 0.48,
    "SPAN_ID": "MUMUMBMUKLYNSPN001_BU"
  }, {
    "NUMBEROFDUCTS": 5,
    "ROUTETYPE": "OT",
    "ASBUILT_LENGTH": 0.14,
    "SPAN_ID": "MUMUMBMUKLYNSPN001_BU"
  }, {
    "NUMBEROFDUCTS": 8,
    "ROUTETYPE": "OT",
    "ASBUILT_LENGTH": 5.45,
    "SPAN_ID": "MUMUMBMUKLYNSPN001_BU"
  }, {
    "NUMBEROFDUCTS": null,
    "ROUTETYPE": "OT",
    "ASBUILT_LENGTH": 0.23,
    "SPAN_ID": "MUMUMBMUKLYNSPN001_BU"
  }],
  "Table2": [],
  "Table3": [{
    "UMS_GROUP_ASS_BY_NAME": "Construction_Eng",
    "MODIFIED_BY": "HARDIK1.SHAH",
    "MODIFIED_DATE": "2017-11-27T12:07:39",
    "APPROVED_DATE": null,
    "REJECTED_DATE": null
  }, {
    "UMS_GROUP_ASS_BY_NAME": "Construction_Eng",
    "MODIFIED_BY": "HARDIK1.SHAH",
    "MODIFIED_DATE": "2017-11-27T12:07:39",
    "APPROVED_DATE": null,
    "REJECTED_DATE": null
  }, {
    "UMS_GROUP_ASS_BY_NAME": "Construction_Eng",
    "MODIFIED_BY": "HARDIK1.SHAH",
    "MODIFIED_DATE": "2017-11-27T12:07:39",
    "APPROVED_DATE": null,
    "REJECTED_DATE": null
  }, {
    "UMS_GROUP_ASS_BY_NAME": "Construction_Eng",
    "MODIFIED_BY": "HARDIK1.SHAH",
    "MODIFIED_DATE": "2017-11-27T12:07:39",
    "APPROVED_DATE": null,
    "REJECTED_DATE": null
  }, {
    "UMS_GROUP_ASS_BY_NAME": "Construction_Eng",
    "MODIFIED_BY": "HARDIK1.SHAH",
    "MODIFIED_DATE": "2017-11-27T12:07:39",
    "APPROVED_DATE": null,
    "REJECTED_DATE": null
  }, {
    "UMS_GROUP_ASS_BY_NAME": "Construction_Eng",
    "MODIFIED_BY": "HARDIK1.SHAH",
    "MODIFIED_DATE": "2017-11-27T12:07:39",
    "APPROVED_DATE": null,
    "REJECTED_DATE": null
  }, {
    "UMS_GROUP_ASS_BY_NAME": "Construction_Eng",
    "MODIFIED_BY": "HARDIK1.SHAH",
    "MODIFIED_DATE": "2017-11-27T12:07:39",
    "APPROVED_DATE": null,
    "REJECTED_DATE": null
  }]
}

更新

var dataResponse = JSON.parse(response);

for (var i = 0; i < dataResponse.Table.length; i++) {
  if (dataResponse.Table[i] != "" || dataResponse.Table[i] != null) {
    $("#spnLinkId").text(dataResponse.Table[i].LINK_ID);
    $("#spnSpanLength").text(dataResponse.Table[i].NE_SPAN_LENGTH);
    $("#txtFiberActlength").val(dataResponse.Table[i].HOTO_ACTUAL_LENGTH);
    $("#txtLITActlength").val(dataResponse.Table[i].LIT_ACTUAL_LENGTH);
  }
  if (dataResponse.Table[i].ISABDMISSING != "" || dataResponse.Table[i].ISABDMISSING != null) {

    if (dataResponse.Table[i].ISABDMISSING == 1) {
      $("#FEmissingAsBuiltYes").prop("checked", true);
    } else {
      $("#FEmissingAsBuiltNo").prop("checked", true);
    }
  }
}

哦,我的...您的dataResponse.Table不是Array 它是一个Object

对于类Array对象的Array ,请使用for loop

但是,要循环一个Object ,可以使用for ... in loop

在您的情况下,可以这样进行:

for (var key in dataResponse){
    /* Your logic here */
    /* key => Table, Table1, Table2... */
    /* dataResponse[key] => [{...}], [{...}]... */
}

我不会直接回答您的问题。 因为显然您在研究javascript循环方面没有做出任何显着的努力。

响应是一个对象,而不是数组 为了遍历一个对象,我们使用了for-in循环,为了遍历一个数组,我们使用了for循环。 在您的情况下,您可以使用for-in循环。

for(var item in dataResponse){
//logic
}

 var dataResponse = { "Table": [{ "JOB_PROGRESS_ID": 4.0, "SPAN_ID": "MUMUMBMUKLYNSPN001_BU", "LINK_ID": "12345678", "SPAN_TYPE": "INTERCITY", "NE_SPAN_LENGTH": 200.0, "HOTO_OFFERED_LENGTH": 26.0, "LIT_OFFERED_LENGTH": 30.0, "HOTO_ACTUAL_LENGTH": 20.0, "LIT_ACTUAL_LENGTH": 15.0, "HOTO_OFFERED_DATE": null, "HOTO_ACCEPTENCE_DATE": null, "LIT_ACCEPTENCE_DATE": null, "APPROV_REJECT_REMARK": null, "ISABDMISSING": 1.0, "JOB_ID": 1.0, "MAINTENANCEZONECODE": "INMUKLYN01" }], "Table1": [{ "NUMBEROFDUCTS": 3, "ROUTETYPE": "HDD", "ASBUILT_LENGTH": 0.09, "SPAN_ID": "MUMUMBMUKLYNSPN001_BU" }, { "NUMBEROFDUCTS": 3, "ROUTETYPE": null, "ASBUILT_LENGTH": 0.33, "SPAN_ID": "MUMUMBMUKLYNSPN001_BU" }, { "NUMBEROFDUCTS": 7, "ROUTETYPE": "OT", "ASBUILT_LENGTH": 12.41, "SPAN_ID": "MUMUMBMUKLYNSPN001_BU" }, { "NUMBEROFDUCTS": 3, "ROUTETYPE": "OT", "ASBUILT_LENGTH": 0.01, "SPAN_ID": "MUMUMBMUKLYNSPN001_BU" }, { "NUMBEROFDUCTS": 7, "ROUTETYPE": "HDD", "ASBUILT_LENGTH": 0.46, "SPAN_ID": "MUMUMBMUKLYNSPN001_BU" }, { "NUMBEROFDUCTS": 8, "ROUTETYPE": "HDD", "ASBUILT_LENGTH": 0.02, "SPAN_ID": "MUMUMBMUKLYNSPN001_BU" }, { "NUMBEROFDUCTS": 6, "ROUTETYPE": "OT", "ASBUILT_LENGTH": 0.33, "SPAN_ID": "MUMUMBMUKLYNSPN001_BU" }, { "NUMBEROFDUCTS": 7, "ROUTETYPE": "CLAMP", "ASBUILT_LENGTH": 0.48, "SPAN_ID": "MUMUMBMUKLYNSPN001_BU" }, { "NUMBEROFDUCTS": 5, "ROUTETYPE": "OT", "ASBUILT_LENGTH": 0.14, "SPAN_ID": "MUMUMBMUKLYNSPN001_BU" }, { "NUMBEROFDUCTS": 8, "ROUTETYPE": "OT", "ASBUILT_LENGTH": 5.45, "SPAN_ID": "MUMUMBMUKLYNSPN001_BU" }, { "NUMBEROFDUCTS": null, "ROUTETYPE": "OT", "ASBUILT_LENGTH": 0.23, "SPAN_ID": "MUMUMBMUKLYNSPN001_BU" }], "Table2": [], "Table3": [{ "UMS_GROUP_ASS_BY_NAME": "Construction_Eng", "MODIFIED_BY": "HARDIK1.SHAH", "MODIFIED_DATE": "2017-11-27T12:07:39", "APPROVED_DATE": null, "REJECTED_DATE": null }, { "UMS_GROUP_ASS_BY_NAME": "Construction_Eng", "MODIFIED_BY": "HARDIK1.SHAH", "MODIFIED_DATE": "2017-11-27T12:07:39", "APPROVED_DATE": null, "REJECTED_DATE": null }, { "UMS_GROUP_ASS_BY_NAME": "Construction_Eng", "MODIFIED_BY": "HARDIK1.SHAH", "MODIFIED_DATE": "2017-11-27T12:07:39", "APPROVED_DATE": null, "REJECTED_DATE": null }, { "UMS_GROUP_ASS_BY_NAME": "Construction_Eng", "MODIFIED_BY": "HARDIK1.SHAH", "MODIFIED_DATE": "2017-11-27T12:07:39", "APPROVED_DATE": null, "REJECTED_DATE": null }, { "UMS_GROUP_ASS_BY_NAME": "Construction_Eng", "MODIFIED_BY": "HARDIK1.SHAH", "MODIFIED_DATE": "2017-11-27T12:07:39", "APPROVED_DATE": null, "REJECTED_DATE": null }, { "UMS_GROUP_ASS_BY_NAME": "Construction_Eng", "MODIFIED_BY": "HARDIK1.SHAH", "MODIFIED_DATE": "2017-11-27T12:07:39", "APPROVED_DATE": null, "REJECTED_DATE": null }, { "UMS_GROUP_ASS_BY_NAME": "Construction_Eng", "MODIFIED_BY": "HARDIK1.SHAH", "MODIFIED_DATE": "2017-11-27T12:07:39", "APPROVED_DATE": null, "REJECTED_DATE": null }] } for(count in dataResponse){ console.log(`[[[[[[[[[[[[[${count}]]]]]]]]]]]]]]`); for(item of dataResponse[count]){ console.log(item); } } 

您可以通过for-offor-in轻松获得dataResponse的值。

首先,您必须使用for-in获得object name

其次,您可以控制表的名称。 (表,表1 ...)

for(item of dataResponse[table])将返回每个表的值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM