注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。

Parse json as struct

サポート対象: Batch, Streaming

指定されたスキーマ定義に従って json 文字列を解析し、スキーマに含まれないフィールドは無視します。

式カテゴリ: データ準備, ファイル, 人気, 構造体

引数

  • Json - スキーマを使用して解析する json。
    Expression<String>
  • Schema - json 文字列を解析する際に使用するスキーマ定義。
    Type<Array<AnyType> | Map<String, String> | Struct>

出力タイプ: Array<AnyType> | Map<String, String> | Struct

例 1: 基本ケース

引数値:

  • Json: json
  • Schema: Struct<airline, airport<id, miles>>
json出力
{
 "airline": "XB-112",
 "airport": {
  "id": "JFK",
  "miles": 2000
 }
}
{
airline: XB-112,
airport: {
id: JFK,
miles: 2000,
},
}

例 2: Nullケース

説明: 入力 JSON に要求されたフィールドが存在しない場合、そのフィールドは null になります。 引数値:

  • Json: json
  • Schema: Struct<airline, airport<id, miles>>
json出力
{
 "airline": "XB-112",
 "airport": {
  "id": "JFK"
 }
}
{
airline: XB-112,
airport: {
id: JFK,
miles: null,
},
}

例 3: Nullケース

説明: 入力 JSON に要求されたフィールドが null の場合、そのフィールドは null になります。 引数値:

  • Json: json
  • Schema: Struct<airline, airport<id, miles>>
json出力
{
 "airline": "XB-112",
 "airport": {
  "id": "JFK",
  "miles": null
 }
}
{
airline: XB-112,
airport: {
id: JFK,
miles: null,
},
}

例 4: Nullケース

説明: 構造体のフィールドが配列の場合のテスト。 引数値:

  • Json: json
  • Schema: Struct<airline, airport<id, countries<String>>>
json出力
{
 "airline": "XB-112",
 "airport": {
  "id": "JFK",
  "countries": ["USA", "Canada"]
 }
}
{
airline: XB-112,
airport: {
countries: [ USA, Canada ],
id: JFK,
},
}

例 5: Nullケース

説明: 構造体のフィールドが空文字列の場合のテスト。 引数値:

  • Json: json
  • Schema: Struct<airline, airport<id, countries<String>>>
json出力
{
 "airline": "XB-112",
 "airport": {
  "id": "",
  "countries": ["USA", "Canada"]
 }
}
{
airline: XB-112,
airport: {
countries: [ USA, Canada ],
id: empty string,
},
}

例 6: Nullケース

説明: 構造体のフィールドが null 要素を持つ配列の場合のテスト。 引数値:

  • Json: json
  • Schema: Struct<airline, airport<id, countries<String>>>
json出力
{
 "airline": "XB-112",
 "airport": {
  "id": "JFK",
  "countries": ["USA", null]
 }
}
{
airline: XB-112,
airport: {
countries: [ USA, null ],
id: JFK,
},
}

例 7: Nullケース

説明: 構造体のフィールドが null 文字列の場合のテスト。 引数値:

  • Json: json
  • Schema: Struct<airline, airport<id, countries<String>>>
json出力
{
 "airline": "XB-112",
 "airport": {
  "id": null,
  "countries": ["USA", "Canada"]
 }
}
{
airline: XB-112,
airport: {
countries: [ USA, Canada ],
id: null,
},
}

例 8: Nullケース

説明: 構造体の 1 個のフィールドがマップの場合のテスト。 引数値:

  • Json: json
  • Schema: Struct<airline, airport<id, countries<String, Integer>>>
json出力
{
 "airline": "XB-112",
 "airport": {
  "id": "JFK",
  "countries": {"USA": 4}
 }
}
{
airline: XB-112,
airport: {
countries: {
 USA -> 4,
},
id: JFK,
},
}

例 9: Nullケース

説明: ダブルフィールドを持つ構造体の解析。 引数値:

  • Json: json
  • Schema: Struct<airline, airport<id, miles>>
json出力
{
 "airline": "XB-112",
 "airport": {
  "id": "JFK",
  "miles": 4.2
 }
}
{
airline: XB-112,
airport: {
id: JFK,
miles: 4.2,
},
}

例 10: Nullケース

説明: ダブルとして解析された整数はダブルとして返されるべきです。 引数値:

  • Json: json
  • Schema: Struct<airline, airport<id, miles>>
json出力
{
 "airline": "XB-112",
 "airport": {
  "id": "JFK",
  "miles": 4
 }
}
{
airline: XB-112,
airport: {
id: JFK,
miles: 4.0,
},
}

例 11: Nullケース

説明: マップの値が null の場合、結果の構造体も null の値を持ちます。 引数値:

  • Json: json
  • Schema: Struct<airline, airport<id, countries<String, Integer>>>
json出力
{
 "airline": "XB-112",
 "airport": {
  "id": "JFK",
  "countries": {"USA": null}
 }
}
{
airline: XB-112,
airport: {
countries: {
 USA -> null,
},
id: JFK,
},
}