我正在解析json。我正在检查json数组,然后创建另一个对象。我只是碰到一个地方。实际上,我正在检查父对象是否有孩子,我在“ testCaseList”数组中添加了一个针对孩子的对象。但是我需要检查子ID是否具有字符“ not”,应在此数组“ commandList”中添加http://jsfiddle.net/tJ7Kq/5/这是我的输入。
[
{
"id": "a",
"text": "a",
"icon": true,
"li_attr": {
"id": "a"
},
"a_attr": {
"href": "#"
},
"state": {
"loaded": true,
"opened": false,
"selected": false,
"disabled": false
},
"data": {
},
"children": [
]
},
{
"id": "b",
"text": "b\n ",
"icon": true,
"li_attr": {
"id": "b"
},
"a_attr": {
"href": "#"
},
"state": {
"loaded": true,
"opened": false,
"selected": false,
"disabled": false
},
"data": {
},
"children": [
{
"id": "b-a-1",
"text": "b-a",
"icon": true,
"li_attr": {
"id": "b-a-1"
},
"a_attr": {
"href": "#"
},
"state": {
"loaded": true,
"opened": false,
"selected": false,
"disabled": false
},
"data": {
},
"children": [
]
},
{
"id": "b-b-2",
"text": "b-b\n ",
"icon": true,
"li_attr": {
"id": "b-b-2"
},
"a_attr": {
"href": "#"
},
"state": {
"loaded": true,
"opened": false,
"selected": false,
"disabled": false
},
"data": {
},
"children": [
{
"id": "b-b-a",
"text": "b-b-a",
"icon": true,
"li_attr": {
"id": "b-b-a"
},
"a_attr": {
"href": "#"
},
"state": {
"loaded": true,
"opened": false,
"selected": false,
"disabled": false
},
"data": {
},
"children": [
]
},
{
"id": "b-b-b",
"text": "b-b-b",
"icon": true,
"li_attr": {
"id": "b-b-b"
},
"a_attr": {
"href": "#"
},
"state": {
"loaded": true,
"opened": false,
"selected": false,
"disabled": false
},
"data": {
},
"children": [
]
}
]
}
]
},
{
"id": "c-1",
"text": "c\n ",
"icon": true,
"li_attr": {
"id": "c-1"
},
"a_attr": {
"href": "#"
},
"state": {
"loaded": true,
"opened": false,
"selected": false,
"disabled": false
},
"data": {
},
"children": [
{
"id": "not-c-a-1",
"text": "c-a",
"icon": true,
"li_attr": {
"id": "not-c-a-1"
},
"a_attr": {
"href": "#"
},
"state": {
"loaded": true,
"opened": false,
"selected": false,
"disabled": false
},
"data": {
},
"children": [
]
},
{
"id": "not-c-b-2",
"text": "b-b",
"icon": true,
"li_attr": {
"id": "not-c-b-2"
},
"a_attr": {
"href": "#"
},
"state": {
"loaded": true,
"opened": false,
"selected": false,
"disabled": false
},
"data": {
},
"children": [
]
}
]
}
]
出去把这个
[
{
"a": {
"commandList": [],
"testCaseList": []
}
},
{
"b": {
"commandList": [],
"testCaseList": [
{
"b-a-1": {
"commandList": [],
"testCaseList": []
}
},
{
"b-b-2": {
"commandList": [],
"testCaseList": [
{
"b-b-a": {
"commandList": [],
"testCaseList": []
}
},
{
"b-b-b": {
"commandList": [],
"testCaseList": []
}
}
]
}
}
]
}
},
{
"c-1": {
"commandList": [],
"testCaseList": [
{
"not-c-a-1": {
"commandList": [],
"testCaseList": []
}
},
{
"not-c-b-2": {
"commandList": [],
"testCaseList": []
}
}
]
}
}
]
预期输出为:[
{
"a": {
"commandList": [],
"testCaseList": []
}
},
{
"b": {
"commandList": [],
"testCaseList": [
{
"b-a-1": {
"commandList": [],
"testCaseList": []
}
},
{
"b-b-2": {
"commandList": [],
"testCaseList": [
{
"b-b-a": {
"commandList": [],
"testCaseList": []
}
},
{
"b-b-b": {
"commandList": [],
"testCaseList": []
}
}
]
}
}
]
}
},
{
"c-1": {
"commandList": [
{
"not-c-a-1": {
"commandList": [],
"testCaseList": []
}
},
{
"not-c-b-2": {
"commandList": [],
"testCaseList": []
}
}],
"testCaseList": []
}
}
]
这个mapItem函数将满足您的需求:
function mapItem(inputItem) {
var item = {};
item[inputItem.id] = JSON.parse(sessionStorage.getItem(inputItem.id));
for (k in inputItem.children) {
if (/^not-/.test(inputItem.children[k].id)) {
item[inputItem.id].commandList.push(mapItem(inputItem.children[k]));
}else{
item[inputItem.id].testCaseList.push(mapItem(inputItem.children[k]));
}
}
return item;
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句