Json反序列化有各种类型

时间:2017-10-27 00:44:27

标签: .net json.net

我有一个包含形状集合的对象模型--Ishape。各种各样的东西实现了这个,比如Rectangle,Circle等。

如果我为此定义一个json文件:

    "shapes": [
    {
      "shapeName": "Rectangle",
      "origin": {
        "x": 50,
        "y": 50
      },
      "height": 20,
      "width": 20,
      },
      "zOrder": 0
    },
    {
      "shapeName": "Circle",
      "origin": {
        "x": 50,
        "y": 50
      },
      "radius": 200,
      "zOrder": 0
    }
  ]

使用Json.Net我无法弄清楚如何为此创建自定义转换器。

另外,我真的不想把属性放在我的模型类上......

有人做过这样的事吗?也许我真的应该使用XML ......(伤心)。

由于

1 个答案:

答案 0 :(得分:0)

感谢您的链接。最后我发现SerializationBinder工作正常,除了我自己的“shapeName”属性之外我在序列化json中有$ type。 Brian Rogers上面的链接似乎是一个更好的解决方案,所以我也会尝试。