如何使用我自己的模型映射 REST 实体

Posted

技术标签:

【中文标题】如何使用我自己的模型映射 REST 实体【英文标题】:How can I map REST entities with my own models 【发布时间】:2020-04-04 12:16:58 【问题描述】:

我得到了一个 REST 服务,它提供了一些奇怪的名称,请参阅下面的 json 格式。 我创建了一些类以使用以下行将它们映射到 JSON:

var data = JsonConvert.DeserializeObject<SSTR)(jsond).inhoud_b.ToArray();

我创建了如下类:

Class inhoud_b ...
Class bidt...
etc.

json:


  "nmbr": 0,
  "tp": 1,
  "sort": 
    "sorted": false,
    "unsorted": true
  ,
  "inhoud_b":[
    
      "bidt": 
        "id": "144a207b-dd48-4ebe-87cb-153e3c6179c4",
        "knldge": null,
        "lTT": null,
        "lD": 
          "id": "52",
          "text": "EM"
        
      
    ,

      "bidt": 
        "id": "155B307b-dd48-4ebe-87cb-125487856579",
        "knldge": null,
        "lTT": null,
        "lDg": 
          "id": "523",
          "text": "AM"
        
      
    
  ],
  "first": true,
  "totalElements": 2

我的问题是,我如何将这些实体与我自己的更有意义的模型进行映射,并在我自己的代码中使用我的模型,而不是那些对其他开发人员没有任何意义的实体? 谢谢。

【问题讨论】:

【参考方案1】:

您可以使用 JsonPropertyAttribute 在 JSON 中使用它们对应的属性名称来注释您的模型属性 - https://www.newtonsoft.com/json/help/html/JsonPropertyName.htm

【讨论】:

感谢您的回复。我如何将它也应用于类名?是否有可以应用于类名的属性? 类名可以是任何你想要的。它使用您在对象中使用它时给它的属性名称,例如 - public class FriendlyName 可以具有 bidt 的所有属性。然后,您将在像 public FriendlyName Bidt get;set; 这样的对象中使用此类,它会将 bidt 对象反序列化到那里

以上是关于如何使用我自己的模型映射 REST 实体的主要内容,如果未能解决你的问题,请参考以下文章

实体模型或 Pojo 类作为 REST API 的返回对象

Spring Rest -> Hibernate 实体到 JSON

如何使用实体框架的导航属性来构建视图模型

如何使用无键实体类型在 EF 模型中定义查询?

如何从实体框架中存在数据模型的json中反序列化对象?

如何将实体主键映射到 Spark ML 预测?