不定期更新Godot心得哦
百度了一下Godot的Json解析,发现没有特别好的解释
于是自己写一个记录一下
第一步,获取文件
首先我们拿到一个简单的Json文件
[
{"id":0,"res_URL":"res://","decorate":["res","res"],"passenger":10,},
{"id":1,"res_URL":"res://","decorate":["res","res"],"passenger":10,}
]
第二步,分析
使用godot自带的分析工具去分析一下json
# 第一种使用parse_json
var result = parse_json(myjson)
# 第二种使用JSON.parse
var r2 = JSON.parse(myjson).result
两种函数大体相似,具体深入部分还没有做了解
第三步,获取数据
可以看到我目前的字符串是一个json数组,里面有两个元素
分析完以后的result也是一个数组的形式
# 输入
print(result)
# 输出
[
{decorate:[res, res], id:0, passenger:10, res_url:res://},
{decorate:[res, res], id:0, passenger:10, res_url:res://}
]
那么获取方式也就显而易见了,第一步,取位置
即result[0]
# 输入
print(result[0])
# 输出
{decorate:[res, res], id:0, passenger:10, res_url:res://}
下一步就十分的神奇了
因为我查看了源代码,他告诉我parse_json的返回值是一个Variant
一个可变类型,这说明他会根据json数据的不同分析出不同的结果
他可以是数组,也可以是单个对象
那么看一下取对象的方法,其实也很简单
result[0]['id']
好了,绕来绕去其实就这么简单
总结一下
var myjson = '[
{"id":0,"res_URL":"res://","decorate":["res","res"],"passenger":10,},
{"id":1,"res_URL":"res://","decorate":["res","res"],"passenger":10,}
]'
func _ready():
var result = parse_json(myjson)
print(result [0]['id'])
大家可以玩一下