【发布时间】:2017-09-11 11:48:20
【问题描述】:
我有两个json格式的数据
"@xmlns": "TestValue",
"Complete": {
"Heights": {
"Height": {
"Person": {
"PersonName": [ {
"@Name": "Mrx",
"Attributes": {
"Attribute": ["Tall", "Small", "Fair", "Intelligente", "Clever", "OnTime" ]
}
}
}
}
}
}
像这样还有其他Mry有属性。
这个 json 属于社会上的所有人,还有另一个人 json,它是同一个 json 的子集,但它存储在不同的文件中。
有两个json文件:allPerson.json和apecialPerson.json。
我这里要执行两个操作:
- 我在
allPerson.json中添加 HasPass="N" 值,在specialPerson.json中添加 HasPass="Y"
所以 json 对于allPerson.json应该是这样的
"@xmlns": "TestValue",
"Complete": {
"Heights": {
"Height": {
"Person": {
"PersonName": [ {
"@Name": "Mrx",
"Attributes": {
"Attribute": [ "Tall" HasPass="N", "Small" HasPass="N", "Fair" HasPass="N", "Intelligente" HasPass="N", "Clever" HasPass="N", "OnTime" HasPass="N"
]
}
}
}
}
}
}
对于specialPerson.json HasPass="Y" 在值级别上。
- 在此之后,我必须合并所有两个 json 以创建一个合并 json 文件
merge.json,它将从allperson.json和specialPerson.json中获取值
如果两个文件有共同的数据,它将采用 HasPass="Y" 的那些值
MergeJson 看起来像这样
"@xmlns": "TestValue",
"Complete": {
"Heights": {
"Height": {
"Person": {
"PersonName": [{
"@Name": "Mrx",
"Attributes": {
"Attribute": [ "Tall" HasPass="Y", "Small" HasPass="N", "Fair" HasPass="Y", "Intelligente" HasPass="N", "Clever" HasPass="Y", "OnTime" HasPass="N" ]
}
}
}
}
}
}
【问题讨论】:
-
我已尝试格式化您的问题以更好地理解它,但
Attribute数组似乎 JSON 格式错误。请确保更新您的问题以反映Attribute的外观。如果Tall同时拥有 HasPass="Y" 和 HasPass="N",如何合并? -
首先需要 HasPass="N" 为 allPerson.json 中的所有属性值和 HasPass="Y" 为 specialPerson.json 中的所有属性,然后需要合并两个文件。如果文件中都存在 Mrx 并且具有 Tall 属性,则在合并文件中采用 HasPass="Y",其他属性值为 hasPass="N"。希望这次我清楚了。
-
当
Tall属性同时具有HasPass="Y"和HasPass="N"时,请为Tall属性提供预期json 的有效示例 -
我想说的是,首先,
"Attribute": [ "Tall" HasPass="Y" ]无效JSON,其次,合并后"Attribute": [ "Tall" HasPass="Y" HasPass="N" ]应该是什么样子? -
它应该像 "Attribute": [ "Tall":{ HasPass="Y"} ] 合并后它也应该像这样只有 "Attribute": [ "Tall":{ HasPass ="Y"} ] 如果 Tall 对两个 Json 来说都是通用的,则基于条件
标签: json c#-4.0 json.net key-value