Cip*_*agă 3 c# serialization duplicates json.net
澄清(对于处于相同情况的任何人):
请注意,我的任务是序列化现有的旧对象.因此,我宁愿调整序列化程序而不是干扰数据结构.
我相信在大多数情况下,最好直接从数据中删除重复项,如@ danny-chen的回答所示.
作为我想要使用JSON.Net序列化的对象的一部分,有一个string[] files包含重复项的属性:
some/path/to/f1.jpg
some/path/to/f1.jpg
some/path/to/f2.jpg
some/path/to/f3.jpg
some/path/to/f2.jpg
Run Code Online (Sandbox Code Playgroud)
让我们假设这些不一定是有序的(f2, f3, f2).
是否可以序列化数组并忽略重复项?预期结果:
{
"files": [
"some/path/to/f1.jpg",
"some/path/to/f2.jpg",
"some/path/to/f3.jpg"
]
}
Run Code Online (Sandbox Code Playgroud)
我已经尝试了PreserveReferencesHandling设置,但它不起作用,因为file数组中的每个都是一个不同的对象,可能重复的值.
它不是序列化的一部分,它是数据处理的一部分.我建议你在序列化之前删除重复项.
string[] files = GetFiles();
data.Files = files.Distinct().ToArray();
//serialize data
//instead of data.Files = files; and do tricky things in serialization
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
981 次 |
| 最近记录: |