简体   繁体   English

在JavaScript中循环JSON变量

[英]Loop json variable in javascript

I have a variable in which I get json value. 我有一个变量,我在其中获取json值。 The value comes from 4 tables. 该值来自4个表。 I want to loop each table while assigning values. 我想在分配值时循环每个表。 Below is my code 下面是我的代码

var dataResponse = JSON.parse(response);

I get values from table as 我从表中获取值

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

how to loop it in javascript. 如何在javascript中循环播放。 Please help 请帮忙

My json value 我的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
  }]
}

UPDATE 更新

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);
    }
  }
}

Oh my... Your dataResponse.Table is not an Array . 哦,我的...您的dataResponse.Table不是Array It is an Object . 它是一个Object

For Array of array-like object, you use for loop . 对于类Array对象的Array ,请使用for loop

However, to loop an Object , you use for...in loop . 但是,要循环一个Object ,可以使用for ... in loop

In your case, it can be done so like: 在您的情况下,可以这样进行:

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

I will not answer your question directly. 我不会直接回答您的问题。 Because clearly you have not make any notable effort in researching looping in javascript. 因为显然您在研究javascript循环方面没有做出任何显着的努力。

The response is an object not an array . 响应是一个对象,而不是数组 For iterating over an object, we use for-in loop and for iterating over an array, we use for loop. 为了遍历一个对象,我们使用了for-in循环,为了遍历一个数组,我们使用了for循环。 In your case, you use for-in loop. 在您的情况下,您可以使用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); } } 

You can get easily the value of dataResponse with for-of and for-in . 您可以通过for-offor-in轻松获得dataResponse的值。

First, you have to get the object name using for-in . 首先,您必须使用for-in获得object name

Second, you can control the name of tables. 其次,您可以控制表的名称。 (Table, Table1 ...) (表,表1 ...)

for(item of dataResponse[table]) will return the value of each table. for(item of dataResponse[table])将返回每个表的值。

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

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