json.net - 有没有一种方法可以基于接口(interface)使用 json.net 从 json 填充现有对象

标签 json.net

寻找一种方法来执行以下操作:

NewtonSoft.Json.JsonConvert.Populate<IMyContract>(jsonStr, currentObj);

其中 json.net 引擎只会尝试填充 IMyContract 中标识的属性。

有什么建议么?

最佳答案

也许你可以使用

PopulateObject(String, Object, JsonSerializerSettings)

并使用您自己的 JsonSerializerSettings。见:http://james.newtonking.com/projects/json/help/html/T_Newtonsoft_Json_JsonSerializerSettings.htm

尝试使用其中一个委托(delegate)来限制您自己设置的属性。这可以基于接口(interface),使用反射。

我不知道还有什么办法。如果您没有通过 JsonSerializerSettings 获得它,您始终可以使用 Json 框架编写自己的 PopulateObject 方法。

关于json.net - 有没有一种方法可以基于接口(interface)使用 json.net 从 json 填充现有对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8979438/

相关文章:

c# - Json.NET解析对象中的数组

c# - 使用 C# 和 Newtonsoft 将 List<string> 转换为 JSON

c# - System.Text.Json 合并两个对象

json - Newtonsoft Json 模式

c# - 在 Json.NET 中如何处理丢失的枚举值以选择另一个枚举值

c# - .Net Core 3.0 TimeSpan 反序列化错误 - 在 .Net 5.0 中修复

c# - Newtonsoft JSON.net 反序列化错误,其中 JSON 中的字段更改顺序

json.net - 使用 StringEnumConverter 生成模式

json - F# 关键字是 Firebase JSON 中的一个字段 - 解决方法吗?

c# - NewtonSoft JArray - 如何使用 LINQ 选择多个元素