我一直在遇到這樣的情況,我想將一些JSON反序列化成與JSON結構不完全匹配的類型。舉例來說,如果我有JSON是這樣的:如何用JSON.NET「扁平化」一些JSON?
"foo": {
"bar": {
"1": 10,
"4": 20,
"3": 30,
"2": 40,
"5": 50
},
}
那我就需要這樣的事:
class Bar
{
[JsonProperty]
int One;
[JsonProperty]
int Two;
[JsonProperty]
int Three;
[JsonProperty]
int Four;
[JsonProperty]
int Five;
}
class Foo
{
[JsonProperty]
Bar bar;
}
但是,如果我想將它變成這樣呢?
class Foo
{
int[] values;
}
在那裏通過從每一箇中減去1並使得陣列出它的鑰匙0爲基礎的指數轉換?我怎樣才能做到這一點?
我還有很多這種custon反序列化的其他例子,但我只是爲了說明而發表另一個例子,因爲我不想要一個適合這個確切例子的解決方案,而是我可以推廣。
"foo": {
"bar": [
{
// Bunch of unimportant stuff
},
{
// Something about the structure of this object alerts me to the fact that this is an interesting record.
"baz": 12
},
{
// Bunch of unimportant stuff
}
]
}
而且我想這變成:
class Foo
{
int baz;
}
我看CustomCreationConverters的幾個例子,如this,但我無法適應那裏呈現任的解決方案以上情況。