24 lines
768 B
GDScript
24 lines
768 B
GDScript
@tool
|
|
## Simple JSON helpers for editor/runtime use.
|
|
## Keeps file and JSON parsing concerns out of feature code.
|
|
class_name JsonUtils
|
|
|
|
static func load_from_file(path: String) -> Variant:
|
|
# Returns parsed JSON value (Dictionary/Array/etc.) or null on error.
|
|
var file := FileAccess.open(path, FileAccess.READ)
|
|
if file == null:
|
|
push_warning("JsonUtils: Failed to open file: %s" % path)
|
|
return null
|
|
var text := file.get_as_text()
|
|
file.close()
|
|
var data: Variant = JSON.parse_string(text)
|
|
if data == null:
|
|
push_warning("JsonUtils: Invalid JSON in file: %s" % path)
|
|
return null
|
|
return data
|
|
|
|
static func load_dict_from_file(path: String) -> Dictionary:
|
|
# Returns Dictionary or empty {} on error.
|
|
var data := load_from_file(path) as Dictionary
|
|
return data
|