json_decode
仕様
json_decodeの戻り値は必ずMapである (取り出すときは、"default"で取り出す)
値 => map[? "default"]
array => list = map[? "default"]
objectはそのまま
内部のlistはちゃんとlistになっている
参考
ds_map_find_first(map)
などを使って確認すると多少便利
オブジェクトの例
code:__
var str = "{\"size\":9}"
var map = json_decode(str)
show_message(map? "size") //9
配列の例
code:__
var str = "11,22,33"
var map_list = json_decode(str)
var list = map_list? "default"
show_message(list1) // 22
show_message( ds_map_find_first(list) // default :†1
show_message( ds_list_size(map_list) ) // :†2
参考
†1: 取得したlist(のid)はなぜかmapとしても認識されている。やっぱり同じlist(自分自身)を返す
†2: 単純なarrayだと実はlistとして認識されているようだが、できるだけmap[? "default"]で取得した方がよいだろう
複雑な例
code:__
var str = "[{\"size\":11,22,33},{\"size\":222,333,444}]"
var def_map = json_decode(str)
list = def_map? "default"
var map = list1
var size = map? "size"
show_message( ds_list_size( size ) ) //3
show_message( size1 ) // 333
#Function
#Map