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

json を struct として解析する

対応している:バッチ、ストリーミング

指定されたスキーマ定義に従って 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:arrow_right:出力
{
"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:arrow_right:出力
{
"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:arrow_right:出力
{
"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:arrow_right:出力
{
"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:arrow_right:出力
{
"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:arrow_right:出力
{
"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:arrow_right:出力
{
"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:arrow_right:出力
{
"airline": "XB-112",
"airport": {
    "id": "JFK",
    "countries": {"USA": 4}
}

} | | {
airline: XB-112,
airport: {
countries: {
 USA -> 4,
},
id: JFK,
},
} |


例 9 - Null ケース

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

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

} | | {
airline: XB-112,
airport: {
id: JFK,
miles: 4.2,
},
} |


例 10 - Null ケース

説明:double として解析された int は double を返すべきです。 引数の値:

  • Json: json
  • Schema: Struct<airline, airport<id, miles>>
json:arrow_right:出力
{
"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:arrow_right:出力
{
"airline": "XB-112",
"airport": {
    "id": "JFK",
    "countries": {"USA": null}
}

} | | {
airline: XB-112,
airport: {
countries: {
 USA -> null,
},
id: JFK,
},
} |