#author("2026-08-31T22:07:47+09:00","default:guide","guide") * Pkript/API/JSON [#v8aa425e] #author("2026-09-04T00:05:51+09:00","default:mcp","bot-mcp") * Pkript/API/JSON [#y551b75e] JSONのシリアライズ・パースのAPI。 JSONのシリアライズとパースを行うAPI。 ** リファレンス [#wef1c207] ** リファレンス [#z3f83b89] *** JSON.stringify(val, [indent]) [#ca24b18a] *** JSON.stringify(val, [indent]) [#cb66622a] #pkript(highlight){{ #highlight{{ JSON.stringify(val, [indent]) }} |~引数|~型|~説明|h |val|any|シリアライズ対象の値| |indent|Number|インデント幅(省略または 0 で1行出力)| 戻り値: String - オブジェクトは {} 、配列は [] に変換される。空のオブジェクトも {} のまま出力される - 関数はシリアライズ不可。オブジェクト内では項目ごと除外、配列内では null になる(JavaScriptと同仕様) - 循環参照はエラー - UTF-8文字列は \uXXXX にエスケープされず素通し - 入れ子の深さは PKRIPT_MAX_DEPTH、サイズは PKRIPT_MAX_STRING / PKRIPT_MAX_ARRAY に従う *** JSON.parse(str) [#taed7ded] *** JSON.parse(str) [#r733bea8] #pkript(highlight){{ #highlight{{ JSON.parse(str) }} - str: String: パース対象のJSON文字列 戻り値: Object / Array / String / Number / Boolean / null 不正なJSONでエラーを投げる。try / catch で捕捉可能。 ** 使用法 [#k381c276] ** 使用法 [#q8900bd6] *** Wikiページに設定をJSONで保存する [#t6050164] *** Wikiページに設定をJSONで保存する [#z56fdfb9] #pkript(highlight){{ #highlight{{ let settings = {}; try { settings = JSON.parse(wiki.source("Settings")); } catch (e) {} settings.count = (settings.count || 0) + 1; wiki.write("Settings", JSON.stringify(settings, 2)); }}