Java
 Computer >> コンピューター >  >> プログラミング >> Java

JavaでJackson APIを使ってJsonNodeをArrayNodeに変換する方法

JsonNodeは、JSONツリーモデルを構成するすべてのJSONノードの基底クラスです。一方、ArrayNodeは、JSONコンテンツからマッピングされた配列を表すノードクラスです。JsonNodeをArrayNodeに変換するには、ObjectMapperクラスのreadTree()メソッドで取得したノードをArrayNodeにキャストします。さらに、get()メソッドを使用することで、配列ノード内の指定した要素の値にアクセスできます。

構文

public JsonNode readTree(String content) throws IOException, com.fasterxml.jackson.core.JsonProcessingException

コード例

import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.node.ArrayNode;
import com.fasterxml.jackson.core.JsonProcessingException;

public class JsonNodeToArrayNodeTest {
   public static void main(String args[]) throws JsonProcessingException {
      String jsonStr = "{\"Technologies\" : [\"Java\", \"Scala\", \"Python\"]}";
      ObjectMapper mapper = new ObjectMapper();
      ArrayNode arrayNode = (ArrayNode) mapper.readTree(jsonStr).get("Technologies");
      if (arrayNode.isArray()) {
         for (JsonNode jsonNode : arrayNode) {
            System.out.println(jsonNode);
         }
      }
   }
}

実行結果

"Java"
"Scala"
"Python"

ポイント解説

readTree()メソッドの戻り値はJsonNode型のため、配列として操作するにはArrayNodeへの明示的なキャストが必要です。キャストの前にisArray()メソッドでノードが配列であることを確認しておくと、対象の要素が配列ではなかった場合にスローされるClassCastExceptionを未然に防ぐことができます。このチェックを入れることで、JSONの構造が不定なデータを安全に処理できるようになります。

  1. JavaでOpenCVのMatオブジェクトをBufferedImageに変換する方法を解説

    OpenCVのimread()メソッドを使って画像を読み込むと、戻り値としてMatオブジェクトが返されます。しかし、このMatオブジェクトの内容をAWTやSwingのウィンドウ上に表示したい場合は、java.awt.image.BufferedImageクラスのオブジェクトへ変換する必要があります。本記事では、MatからBufferedImageへの変換手順を、サンプルコードとともにわかりやすく解説します。MatをBufferedImageに変換する4つのステップ1. MatをMatOfByteにエンコードするまず、画像データを保持する行列(Mat)を、バイト列のマトリックスであるMatOfB

  2. 【Java入門】ネガティブ画像をポジティブ画像に変換する方法|BufferedImageでピクセル単位のRGB反転を実装

    ネガティブ(反転)画像を元のポジティブ画像に戻すには、画像内のすべてのピクセルに対して、赤(R)・緑(G)・青(B)の各値を「255 − 値」で反転させます。透明度を表すアルファ(A)成分はそのまま維持します。この操作は可逆的なため、同じロジックでポジ→ネガ→ポジの往復変換にも対応できます。 ネガ画像からポジ画像への変換手順 画像の読み込み: ImageIO.read() メソッドで対象の画像ファイルを読み込みます。 サイズの取得: getHeight() と getWidth() で画像の高さと幅を取得します。 ピクセル走査: 二重の for ループで画像内の全ピクセルを順番に処理します。