• 2019年5月6日月曜日
アリスト戦記
アリスト戦記 https://blog.aristo-solutions.net/2019/05/jacksonjavajson.html

JacksonでJavaオブジェクトとJSON文字列を変換する

Java界ではJSON文字列を取り扱うライブラリは、恐らく「Jackson」か「gson」の2強だろう。

Pythonなんかだと標準でJSON機能を持っているんだけど、Javaの場合は外部ライブラリの導入が必要になる。
だから、ある現場では「Jackson」を使い、ある現場では「gson」を使うという事態が起きてしまうのだが……。

「その言語が元々機能を持っている」というのはこういう所で長所となるんだな。

それはさておき、「Jackson」で頻繁に使う「JavaオブジェクトとJSON文字列の変換」のサンプルを以下に置いておく。

JavaオブジェクトをJSON文字列に変換する

/**
 * JavaオブジェクトをJSON文字列に変換する。
 *
 * @param param Javaオブジェクト
 * @return JSON文字列
 * @throws JsonProcessingException
 */
public String buildJsonSample(ParamDto param) throws JsonProcessingException {

   ObjectMapper mapper = new ObjectMapper();
   String json = mapper.writeValueAsString(param);

   logger.info("json={}", json);

   return json;

}

JSON文字列をJavaオブジェクトに変換する

/**
 * Json文字列をオブジェクトに変換する。
 *
 * @param jsonStr JSON文字列
 * @return Javaオブジェクト
 * @throws IOException
 */
public ParamDto jsonToClass(String jsonStr) throws IOException {

   logger.info("jsonStr={}", jsonStr);

   ObjectMapper mapper = new ObjectMapper();
   ParamDto param = mapper.readValue(jsonStr, ParamDto.class);

   logger.info("ParamDto.param1={}", param.getParam1());
   logger.info("ParamDto.param2={}", param.getParam2());
   logger.info("ParamDto.param3={}", param.getParam3());

   return param;

}

0 件のコメント:

コメントを投稿