簡體   English   中英

如何將Json對象動態轉換為Java對象

[英]How do I convert Json object to a Java object dynamically

這是我的用例:

我在服務器端有這些類。

class Individual {
  protected String uri;
  protected int id;
}

class Person extends Individual {
  // Person properties like names, address etc
  String type = "Person";
}

class Role extends Individual {
  // Role properties like name, title etc
  String type = "Role";
}

class Organization extends Individual {
  // Org properties like name name, address etc
  String type = "Organization";
}

我上課說的是類似下面的Action

class Action {
  String performedBy; // This can be any Individual
}

我有一個接受Action的控制器。 我希望根據客戶端發送的內容正確分配“ Individual 我應該如何定義Action和其他類來實現這一目標?

如果我發送以下內容,則希望performedBy成為Person

{
 "id": 10,
 "uri":"uri_blah",
 "lastname": "last_name",
 "type":"Person"
}

@JsonType批注允許將類型序列化為屬性:

@JsonTypeInfo(
   use = JsonTypeInfo.Id.NAME, 
   include = JsonTypeInfo.As.PROPERTY, 
   property = "type")
@JsonSubTypes({ 
   @Type(value = Person.class, name = "Person"), 
   @Type(value = Role.class, name = "Role") 
   // ...
 })
 public abstract class Individual {
    // ...
 }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM