我有以下几类:
public class MyRequest
{
public string Type {get;set;}
public string Source {get;set;}
}
我想从名为Type
的JSON字段序列化/反序列化Source
的值,例如:
{
"type": "bank",
"bank": "Some value"
}
或
{
"type": "card",
"card": "Some value"
}
其中两者都系结至Source
属性。
4条答案
按热度按时间tjjdgumg1#
您可以建立自订
JsonConverter
来行程动态属性名称:若要使用转换器,请将
[JsonConverter]
属性加入至您的类别,如下所示:下面是一个有效的往返演示:https://dotnetfiddle.net/o7NDTV
uujelgoq2#
我会编写自定义序列化/反序列化方法
第一个
rxztt3cl3#
我最近遇到了这样的问题,我需要使用一个有动态数据合约的API,所以我开发了一个名为SerializationInterceptor的包。https://github.com/essencebit/SerializationInterceptor/wiki。您也可以使用Nuget软件包管理器安装软件包。
下面的示例使用Newtonsoft.Json进行序列化/反序列化。当然,您可以使用任何其他工具,因为此包不依赖于任何工具。
您可以创建一个拦截器:
然后将拦截器放置在Source prop 上:
然后调用正确的序列化/反序列化,如下所示:
aemubtdh4#
我的解决办法是:首先创建APIResultModel类:
其次创建APIModel抽象类:
第三个创建动态内容Model类:
需要反序列化json字符串时:
反序列化函数来自@Eser