key
是复杂类型时序列化字典的最佳方法是什么。例如,请考虑无效 json
:
[
{ParentId:1, ParentName:'X'}:
[{'ChildId':'1', 'ChildName':'a'}, {'ChildId':'2', 'ChildName':'b'}],
{ParentId:2, ParentName:'Y'}:
[{'ChildId':"3", 'ChildName':'c'}]}
]
有没有办法正确序列化?
答案 0 :(得分:1)
不幸的是,这不是一个有效的json,所以答案是否:-(键必须是字符串。你可以重新组织你的数据结构,将你的子列表包装成一个" parent"对象一个id和一个名字!
基本上它看起来像:
[
{
"ParentId": 1,
"ParentName": "X",
"children": [
{
"ChildId": 1,
"ChildName": "a"
},
{
"ChildId": 2,
"ChildName": "b"
}
]
},
{
"ParentId": 2,
"ParentName": "Y",
"children": [
{
"ChildId": 3,
"ChildName": "c"
}
]
}
]
您可以在此处找到JSON的规格:https://tools.ietf.org/html/rfc4627
答案 1 :(得分:1)
您可以使用键作为字符串和值来包装json作为复杂对象。
此外,复杂类型的键也应该是字符串。
例如:
[
{
"name": {
"ParentId": 1,
"ParentName": "X"
},
"value": [
{
"ChildId": "1",
"ChildName": "a"
},
{
"ChildId": "2",
"ChildName": "b"
}
]
},
{
"name": {
"ParentId": 2,
"ParentName": "Y"
},
"value": [
{
"ChildId": "3",
"ChildName": "c"
}
]
}
]