[Godot心得01] Godot的Json解析

不定期更新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'])

大家可以玩一下

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容