検索

2.8. JSON 処理での JSON API の使用 (JSON-P)

download PDF

JSON 処理 (JSON-P) の JSON API は、JSR 353 で定義されている Java EE 7 仕様で導入されました。追加の仕様は、Java EE 8 の JSR 374 で定義されています。JSON Processing の Jakarta EE と同等のものは、Jakarta JSON Processing 1.1 仕様 に含まれています。

JSON-P は JSON を処理する API を定義します。JBoss EAP は、リクエストまたは応答エンティティーとして javax.json.JsonObjectjavax.json.JsonArrayjavax.json.JsonStructure をサポートします。

注記

JSON 処理 (JSON-P) の JSON API は、Padding (JSONP) では JSON とは異なります。

注記

JSON-P が同じクラスパスにある場合は、Jackson と競合しません。

JsonObject を作成するには、Json.createObjectBuilder() を呼び出して JSON オブジェクトをビルドして JsonObjectBuilder を使用します。

例: javax.json.JsonObject の作成

JsonObject obj = Json.createObjectBuilder().add("name", "Bill").build();

例: javax.json.JsonObject の対応 JSON

{
  "name":"Bill"
}

JsonArray を作成するには、Json.createArrayBuilder() を呼び出して SON アレイを構築し、JsonArrayBuilder を使用します。

例: javax.json.JsonArray の作成

JsonArray array =
  Json.createArrayBuilder()
    .add(Json.createObjectBuilder().add("name", "Bill").build())
    .add(Json.createObjectBuilder().add("name", "Monica").build()).build();

例: javax.json.JsonArray の対応 JSON

[
  {
  "name":"Bill"
  },
  {
  "name":"Monica"
  }
]

JsonStructureJsonObject および JsonArray の親クラスです。

例: javax.json.JsonStructure の作成

JsonObject obj = Json.createObjectBuilder().add("name", "Bill").build();

JsonArray array =
  Json.createArrayBuilder()
    .add(Json.createObjectBuilder().add("name", "Bill").build())
    .add(Json.createObjectBuilder().add("name", "Monica").build()).build();

JsonStructure sObj = (JsonStructure) obj;
JsonStructure sArray = (JsonStructure) array;

JsonObjectJsonArrayJsonStructure、を JAX-RS リソースで直接使用できます。

例: JSON-P を使用した JAX-RS リソース

@Path("object")
@POST
@Produces("application/json")
@Consumes("application/json")
public JsonObject object(JsonObject obj) {
  // do something
  return obj;
 }

@Path("array")
@POST
@Produces("application/json")
@Consumes("application/json")
public JsonArray array(JsonArray array) {
  // do something
  return array;
}

@Path("structure")
@POST
@Produces("application/json")
@Consumes("application/json")
public JsonStructure structure(JsonStructure structure) {
  // do something
  return structure;
}

クライアントから JSON-P を使用して JSON を送信することもできます。

例: JSON-P を使用するクライアント

WebTarget target = client.target(...);
JsonObject obj = Json.createObjectBuilder().add("name", "Bill").build();
JsonObject newObj = target.request().post(Entity.json(obj), JsonObject.class);

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.