Java:
JSONを活用する
方法:
それでは、JavaでJSONを使ってコーディングを始めましょう。
まず、Jackson
やGoogle Gson
のようなJSON処理ライブラリが必要です。ここではJackson
を使いますので、以下の依存関係をpom.xml
に追加してください:
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.13.1</version>
</dependency>
さて、単純なJavaオブジェクトをJSONにシリアライズ(書き込み)しましょう:
import com.fasterxml.jackson.databind.ObjectMapper;
public class JsonExample {
public static void main(String[] args) {
try {
ObjectMapper mapper = new ObjectMapper();
Person person = new Person("Alex", 30);
String json = mapper.writeValueAsString(person);
System.out.println(json);
} catch (Exception e) {
e.printStackTrace();
}
}
}
class Person {
public String name;
public int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
}
出力は次のようになります:
{"name":"Alex","age":30}
次に、JSONをJavaオブジェクトにデシリアライズ(読み込み)するには:
import com.fasterxml.jackson.databind.ObjectMapper;
public class JsonExample {
public static void main(String[] args) {
String json = "{\"name\":\"Alex\",\"age\":30}";
try {
ObjectMapper mapper = new ObjectMapper();
Person person = mapper.readValue(json, Person.class);
System.out.println(person.name + " is " + person.age + " years old.");
} catch (Exception e) {
e.printStackTrace();
}
}
}
出力は次のようになります:
Alex is 30 years old.
深堀り
JSONのシンプルさと有効性が、ウェブ上のデータ交換のための事実上の標準となり、XMLをその玉座から引きずり下ろしました。JSONは2000年代初頭に導入され、JavaScriptから派生しましたが、現在ではほとんどの言語でサポートされています。
JSONに代わるものには、より冗長なXMLや、サイズと速度ではより効率的ですが、人間には読みにくいバイナリ形式のProtocol BuffersやMessagePackなどがあります。それぞれに使用されるケースがあり、選択は特定のデータニーズとコンテキストに依存します。
Javaでは、Jackson
やGson
のほかに、JSONを扱うためのJsonB
やorg.json
といったライブラリがあります。Jacksonはストリームベースの処理を提供し、その速さで知られています。一方、Gsonは使いやすさで高い評価を受けています。JsonBはJakarta EEの一部で、より標準化されたアプローチを提供します。
JSONを実装する際は、適切に例外を処理することを忘れないでください - あなたのコードは悪い入力に対しても堅牢であるべきです。また、自動データバインディングのセキュリティへの影響を考慮し、常に入力を検証してください!