所以我有这个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]
如何迭代对象呢?
答案 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]);
}
}
我建议更改输出,如果它只有一个结果,以便更容易解析。如果您有权修改服务器代码。