迭代Json数据

时间:2017-06-08 09:26:58

标签: javascript json

所以我有这个JSON对象数组:

[
  {
    "columns": [
      {
        "fields": [
          {
            "valueFields": [
              {
                "type": 1,
                "fieldName": "prj_Name",
                "value": "1A BNL FB e-Powedr basic Balci Reizen",
                "valueId": "",
                "defaultValue": false,
                "baseValue": false,
                "mandatoryField": true,
                "hasError": false,
                "errorMessage": "",
                "disabled": false,
                "visible": true
              }
            ]
          }
        ]
      }
    ]
  }
]

我希望稍后通过数据来处理它。

我已经尝试过了:

for (var key in currentObject) {
    if (currentObject.hasOwnProperty(key)) {
        console.log(key + ': ' + currentObject[key]);
    }
}

但它会在控制台中分别打印每个字母,所以我猜它不对。 你有什么想法我做错了吗?

[编辑]

我尝试在var currentObject = JSON.parse(Json);循环之前添加for

我现在打印出0: [object Object]

如何迭代对象呢?

1 个答案:

答案 0 :(得分:1)

您的JsonObject是JsonArray中JsonArray中的JsonArray中的JsonArray ......

请尝试使用以下代码online,它适用于您的情况

var x  = '[{"columns":[{"fields":[{"valueFields":[{"type":1,"fieldName":"prj_Name","value":"1A BNL FB e-Powedr basic BalciReizen","valueId":"","defaultValue":false,"baseValue":false,"mandatoryField":true,"hasError":false,"errorMessage":"","disabled":false,"visible":true}]}]}]}]';
var parsedJson = JSON.parse(x);
var valueFields = parsedJson[0].columns[0].fields[0].valueFields[0];

for (var key in valueFields) {
    if (valueFields.hasOwnProperty(key)) {
        console.log(key + ': ' + valueFields[key]);
    }
}

我建议更改输出,如果它只有一个结果,以便更容易解析。如果您有权修改服务器代码。