簡體   English   中英

用傑克遜解析json

[英]json parsing with jackson

我正在使用Jackson庫將JSON字符串轉換為Java對象

我的json是:

{  
   "human":{  
      "fname":"anjali",
      "lname":"malhotra"
   }
}

我希望將其轉換為具有以下結構的Java類:

public class Human
{
  String fname;
  String lname;
}

我可以成功地將其轉換為

public class HumanWrapper
{
  Human human;
}

但是,我想知道是否可以直接將其轉換為Human格式。 我讀過有關自定義反序列化的信息,但不願采用這種方法。

您可以通過將ObjectMapper配置為使用DeserializationFeature.UNWRAP_ROOT_VALUE來實現:

ObjectMapper mapper = new ObjectMapper();
mapper.configure(DeserializationFeature.UNWRAP_ROOT_VALUE, true);

並使用@JsonRootName注釋對Human類進行注釋:

@JsonRootName("human")
public class Human {
....
}

您需要有一個HumanWrapper類,因為您的人類對象是在json對象內部定義的

{
    "human": {
    }
}

如果您能夠更改您的API以僅發送這樣的human對象

{  
  "fname":"anjali",
  "lname":"malhotra"
}

那你就不用HumanWrapper一個HumanWrapper

暫無
暫無

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

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