您好我需要一种方法来遍历给定的json数组的json对象,并根据每个json对象的“F”属性中的反斜杠数量(/)动态地为每个json对象添加名为“depth”的属性我需要为我的项目。如何遍历json字符串(json对象的json数组)并使用c#动态添加属性?
这里是JSON字符串:
[
{
"A":"0",
"B":"0",
"ID":"000001",
"C":"Class",
"D":"/000001",
"F":"/Class",
"children":[
{
"A":"1",
"B":"1",
"ID":"000004",
"C":"Test1",
"D":"/000001/000004",
"F":"/Class/Test1"
},
{
"A":"0",
"B":"0",
"ID":"000005",
"C":"aaa1_test_2",
"D":"/000001/000005",
"F":"/Class/aaa1_test_2",
"children":[
{
"A":"1",
"B":"1",
"ID":"000006",
"C":"abcd",
"D":"/000001/000005/000006",
"F":"/Class/aaa1_test_2/abcd"
}
]
},
{
"A":"1",
"B":"1",
"ID":"000007",
"C":"16.2.2017",
"D":"/000001/000007",
"F":"/Class/16.2.2017"
},
{
"A":"0",
"B":"1",
"ID":"000008",
"C":"008000_02-Core Dia:-CORE DIAMETER",
"D":"/000001/000008",
"F":"/Class/008000_02-Core Dia:-CORE DIAMETER",
"children":[
{
"A":"1",
"B":"1",
"ID":"000027",
"C":"1wa",
"D":"/000001/000008/000027",
"F":"/Class/008000_02-Core Dia:-CORE DIAMETER/@1wa"
}
]
},
{
"A":"0",
"B":"1",
"ID":"000009",
"C":"20.2.2017",
"D":"/000001/000009",
"F":"/Class/20.2.2017",
"children":[
{
"A":"1",
"B":"1",
"ID":"000010",
"C":"TEST-005",
"D":"/000001/000009/000010",
"F":"/Class/20.2.2017/TEST-005"
}
]
},
{
"A":"1",
"B":"1",
"ID":"000011",
"C":"3.3.2017",
"D":"/000001/000011",
"F":"/Class/3.3.2017"
},
{
"A":"1",
"B":"1",
"ID":"000016",
"C":"TEST100",
"D":"/000001/000016",
"F":"/Class/TEST100"
},
{
"A":"1",
"B":"1",
"ID":"000017",
"C":"Test101",
"D":"/000001/000017",
"F":"/Class/Test101"
},
{
"A":"1",
"B":"1",
"ID":"000019",
"C":"Test102",
"D":"/000001/000019",
"F":"/Class/Test102"
},
{
"A":"1",
"B":"1",
"ID":"000024",
"C":"Godrej",
"D":"/000001/000024",
"F":"/Class/God"
},
{
"A":"1",
"B":"1",
"ID":"000025",
"C":"T",
"D":"/000001/000025",
"F":"/Class/T"
},
{
"A":"1",
"B":"1",
"ID":"000026",
"C":"K_Test",
"D":"/000001/000026",
"F":"/Class/K_Test"
},
{
"A":"1",
"B":"0",
"ID":"000028",
"C":"RB_TEST1",
"D":"/000001/000028",
"F":"/Class/RB_TEST1"
},
{
"A":"0",
"B":"0",
"ID":"900004",
"C":"Comps",
"D":"/000001/900004",
"F":"/Class/Comps",
"children":[
{
"A":"0",
"B":"1",
"ID":"900006",
"C":"Capacitors",
"D":"/000001/900004/900006",
"F":"/Class/Comps/Capacitors",
"children":[
{
"A":"1",
"B":"1",
"ID":"000015",
"C":"Test2",
"D":"/000001/900004/900006/000015",
"F":"/Class/Comps/Capacitors/Test2"
},
{
"A":"0",
"B":"1",
"ID":"000018",
"C":"Test3",
"D":"/000001/900004/900006/000018",
"F":"/Class/Comps/Capacitors/Test3",
"children":[
{
"A":"1",
"B":"0",
"ID":"000020",
"C":"Test4",
"D":"/000001/900004/900006/000018/000020",
"F":"/Class/Comps/Capacitors/Test3/Test4"
}
]
}
]
},
{
"A":"1",
"B":"1",
"ID":"900007",
"C":"Induct",
"D":"/000001/900004/900007",
"F":"/Class/Comps/Induct"
},
{
"A":"1",
"B":"1",
"ID":"900008",
"C":"ICS",
"D":"/000001/900004/900008",
"F":"/Class/Comps/ICS"
}
]
}
]
}
]
我需要的输出是这样的:
[
{
"A":"0",
"B":"0",
"ID":"000001",
"C":"Class",
"D":"/000001",
"depth":1,
"F":"/Class",
"children":[
{
"A":"1",
"B":"1",
"ID":"000004",
"C":"Test1",
"D":"/000001/000004",
"depth":2,
"F":"/Class/Test1"
},
{
"A":"0",
"B":"0",
"ID":"000005",
"C":"aaa1_test_2",
"D":"/000001/000005",
"depth":2,
"F":"/Class/aaa1_test_2",
"children":[
{
"A":"1",
"B":"1",
"ID":"000006",
"C":"abcd",
"D":"/000001/000005/000006",
"depth":3,
"F":"/Class/aaa1_test_2/abcd"
}
]
},
{
"A":"1",
"B":"1",
"ID":"000007",
"C":"16.2.2017",
"D":"/000001/000007",
"depth":2,
"F":"/Class/16.2.2017"
},
{
"A":"0",
"B":"1",
"ID":"000008",
"C":"008000_02-Core Dia:-CORE DIAMETER",
"D":"/000001/000008",
"depth":2,
"F":"/Class/008000_02-Core Dia:-CORE DIAMETER",
"children":[
{
"A":"1",
"B":"1",
"ID":"000027",
"C":"1wa",
"D":"/000001/000008/000027",
"depth":3,
"F":"/Class/008000_02-Core Dia:-CORE DIAMETER/@1wa"
}
]
},
{
"A":"0",
"B":"1",
"ID":"000009",
"C":"20.2.2017",
"D":"/000001/000009",
"depth":2,
"F":"/Class/20.2.2017",
"children":[
{
"A":"1",
"B":"1",
"ID":"000010",
"C":"TEST-005",
"D":"/000001/000009/000010",
"depth":3,
"F":"/Class/20.2.2017/TEST-005"
}
]
},
{
"A":"1",
"B":"1",
"ID":"000011",
"C":"3.3.2017",
"D":"/000001/000011",
"depth":2,
"F":"/Class/3.3.2017"
},
{
"A":"1",
"B":"1",
"ID":"000016",
"C":"TEST100",
"D":"/000001/000016",
"depth":2,
"F":"/Class/TEST100"
},
{
"A":"1",
"B":"1",
"ID":"000017",
"C":"Test101",
"D":"/000001/000017",
"depth":2,
"F":"/Class/Test101"
},
{
"A":"1",
"B":"1",
"ID":"000019",
"C":"Test102",
"D":"/000001/000019",
"depth":2,
"F":"/Class/Test102"
},
{
"A":"1",
"B":"1",
"ID":"000024",
"C":"Godrej",
"D":"/000001/000024",
"depth":2,
"F":"/Class/God"
},
{
"A":"1",
"B":"1",
"ID":"000025",
"C":"T",
"D":"/000001/000025",
"depth":2,
"F":"/Class/T"
},
{
"A":"1",
"B":"1",
"ID":"000026",
"C":"K_Test",
"D":"/000001/000026",
"depth":2,
"F":"/Class/K_Test"
},
{
"A":"1",
"B":"0",
"ID":"000028",
"C":"RB_TEST1",
"D":"/000001/000028",
"depth":2,
"F":"/Class/RB_TEST1"
},
{
"A":"0",
"B":"0",
"ID":"900004",
"C":"Comps",
"D":"/000001/900004",
"depth":2,
"F":"/Class/Comps",
"children":[
{
"A":"0",
"B":"1",
"ID":"900006",
"C":"Capacitors",
"D":"/000001/900004/900006",
"depth":3,
"F":"/Class/Comps/Capacitors",
"children":[
{
"A":"1",
"B":"1",
"ID":"000015",
"C":"Test2",
"D":"/000001/900004/900006/000015",
"depth":4,
"F":"/Class/Comps/Capacitors/Test2"
},
{
"A":"0",
"B":"1",
"ID":"000018",
"C":"Test3",
"D":"/000001/900004/900006/000018",
"depth":4,
"F":"/Class/Comps/Capacitors/Test3",
"children":[
{
"A":"1",
"B":"0",
"ID":"000020",
"C":"Test4",
"D":"/000001/900004/900006/000018/000020",
"depth":5,
"F":"/Class/Comps/Capacitors/Test3/Test4"
}
]
}
]
},
{
"A":"1",
"B":"1",
"ID":"900007",
"C":"Induct",
"D":"/000001/900004/900007",
"depth":2,
"F":"/Class/Comps/Induct"
},
{
"A":"1",
"B":"1",
"ID":"900008",
"C":"ICS",
"D":"/000001/900004/900008",
"depth":2,
"F":"/Class/Comps/ICS"
}
]
}
]
}
]
例如,如果你看一下第一个JSON对象 “F” 属性包含1回斜线因此“深度“属性值应该是1.
_“这是代码”_ - 您没有发布任何代码。只是JSON数据。显而易见的方法是将源数据反序列化为实际的对象模型,然后使用新的'depth'属性将数据作为JSON进行研究。根据您使用的处理JSON的方式,您可以反序列化为具有'depth'属性的对象(该对象将保持未初始化状态),设置属性然后重新序列化,或者仅从一个数据中复制没有财产的结构给另一个拥有财产的财产,在这个财产中你将它设定为你想要的价值。 –