【Godot4】to_jsonとparse_json

ネコニウム研究所

PCを利用したモノづくりに関連する情報や超個人的なナレッジを掲載するブログ

【Godot4】to_jsonとparse_json

2023-5-12 | ,

Godot4のGDScriptでJSONを使うためにGodot3のto_jsonparse_jsonを使いたい!

概要

今回の記事では、Godot4のGDScriptでJSONを使うためにGodot3のto_jsonparse_jsonの代替になる手順を掲載する。

仕様書

環境

  • Gogot 4.0

手順書

下記はJSONを書き込む例。

var hp = 100
var mp = 50

var data = {
    "player_hp": hp,
    "player_mp": mp
}

# Godot3
var file = File.new()
file.open("data.json", File.WRITE)
file.store_line(to_json(data))
file.close()

# Godot4
var file = FileAccess.open("data.json", FileAccess.WRITE)
var json = JSON.new()
var json_string = json.stringify(data)
file.store_line(json_string)

下記はJSONを読み込む例。

var hp = 100
var mp = 50

var data = {
    "player_hp": hp,
    "player_mp": mp
}

# Godot3
var file = File.new()
file.open("data.json", File.READ)
var data = parse_json(file.get_line())
if data != null:
    hp = data["player_hp"]
    mp = data["player_mp"]
    file.close()

# Godot4
if FileAccess.file_exists(SCORE_FILE_PATH):
    var file = FileAccess.open("data.json", FileAccess.READ)
    var json = JSON.new()
    var json_string = json.parse(file.get_line())
    var data = json.data
    if data != null:
        hp = data["player_hp"]
        mp = data["player_mp"]

Godot3とGodot4でJSON関連も変わってますが、ファイル関連の処理の関数(メゾット)も変わってるのに注意。

File -> FileAccess

FileAccessになってからcloseしなくてよくなったらしい。

まとめ(感想文)

関数(メゾット)の名前が変わるだけでもめちゃくちゃ大変だ。