構文
json.tryDecode(json: string, options?: DecodeOptions): boolean | any | nil | string | nil | number | nil引数
| 名前 | 型 | 説明 |
|---|---|---|
json | string | 解析、フォーマット、縮小、または検証する JSON 文字列。 |
options? | DecodeOptions | 操作の動作を制御するオプションの設定テーブル。 |
戻り値
| 名前 | 型 | 説明 |
|---|---|---|
success | boolean | 操作が正常に完了した場合は True。 |
decoded | any | nil | デコードされた Luau 値またはデコードされたバイト文字列。 |
errorMessage | string | nil | ロードまたは解析が失敗した場合はエラー メッセージが返され、それ以外の場合は nil が返されます。 |
errorPosition | number | nil | 解析が失敗した位置、または解析エラーが発生しなかった場合は nil。 |
説明
JSON の解析を試み、スローする代わりに構造化されたエラー情報を返します。
2 個のパラメータで呼び出します: json, options。引数表では必須値と動作を調整する値を確認できます。
success (boolean), decoded (any | nil), errorMessage (string | nil), errorPosition (number | nil) を返します。戻り値表を使って成功値、nil 結果、回復可能なエラーを分けて扱ってください。
例
不正な入力をスローせずに JSON をデコードしようとします。
local ok, value, message, position = json.tryDecode('{"ready":true}')
if ok then
print(value.ready)
else
warn(message, position)
end型
DecodeOptions
JSON 解析動作を制御します。
useNull? boolean nil の代わりにライブラリの null センチネルを使用して JSON null を表します。maxDepth? integer ネストの最大の深さを 1 ~ 4096 の範囲で設定します。