|
|
1
72
我又试了一次,用 DataContractJsonSerializer 上课。这就解决了它: 代码如下所示:
测试是:
唯一的缺点是我必须将DetailLevel从枚举更改为字符串-如果保留枚举类型,DataContractJsonSerializer将读取数值并失败。见 DataContractJsonSerializer and Enums 更多细节。 在我看来,这相当糟糕,特别是当JavaScriptSerializer正确处理它时。这是尝试将字符串解析为枚举时出现的异常:
这样标记枚举不会改变这种行为:
这似乎也适用于Silverlight。 |
|
|
2
20
通过创建自定义 JavaScriptConverter 您可以将任何名称映射到任何属性。但它确实需要手工编码地图,这并不理想。
然后你可以这样反序列化:
|
|
|
3
13
Json.NET 会做你想做的事(免责声明:我是软件包的作者)。它支持读取DataContract/DataMember属性以及它自己的属性来更改属性名。还有一个StringEnumConverter类,用于将枚举值序列化为名称而不是数字。 |
|
|
4
11
不支持在中重命名属性
这个
我知道这可能有点晚,但我想其他人想用
|
|
|
5
5
创建从JavaScriptConverter继承的类。然后必须实现三件事: 方法-
财产-
当需要对序列化和反序列化过程进行更多控制时,可以使用JavaScriptConverter类。
|
|
|
6
4
我使用了using Newtonsoft.Json,如下所示。创建对象:
现在调用下面的方法序列化为Json对象,如下所示。
|
|
|
7
1
为了那些不想去的人
Newtonsoft Json.Net
或
注:此
这可以使用如下-
这个
请注意,此解决方案无法处理
|
|
|
8
0
我的要求包括:
最后我的解决方案是使用SimpleJson( https://github.com/facebook-csharp-sdk/simple-json ). 尽管您可以通过nuget包安装它,但我在项目中只包含了那个SimpleJson.cs文件(带有MIT许可证)并引用了它。 我希望这对某人有帮助。 |