Mik*_*ras 3 serialization json.net
我正在JavaScript中构建多态序列化类型并在.Net中反序列化它们.这工作正常,除非我的"$ type"属性不是第一个属性(Json.net似乎忽略它).
所以:
{
"$type" : "...",
"FirstName" : "Bob"
}
Run Code Online (Sandbox Code Playgroud)
工作(它反序列化为$ type提供的类型),但是:
{
"FirstName" : "Bob",
"$type" : "..."
}
Run Code Online (Sandbox Code Playgroud)
没有.
有没有一种方法可以让顺序无关紧要,或者一种简单的方法来获取我的json字符串并修改它,以便我的"$ type"属性始终位于.Net的顶部?换句话说,在我反序列化字符串以重新排序属性以便"$ type"位于顶部之前,我可以使用json.net吗?我不想在JavaScript /序列化方面要求它.
更新:使用 MetadataPropertyHandling.ReadAhead
http://www.newtonsoft.com/json/help/html/T_Newtonsoft_Json_MetadataPropertyHandling.htm
它必须是第一个.
您可以将JSON加载到JObject中,重新排列属性顺序,以便$ type是第一个属性,然后反序列化它.