json_decode


描述

SON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于读取和写入,适用于人和机器。它建立在两个基本结构上:

使用此函数,你可以解码一段 JSON 并将其转换为 ds_map,准备在 GameMaker Studio 2 中使用。如果要解码的 JSON 需要在中心 ds_map 中使用列表和映射的层次结构,那么也会使用以下规则(注意,这些规则仅适用于顶级结构)对其进行解码并为你创建:

注意:解码数组时,只有当数组是顶级结构时,才会有一个带 “default” 键的映射,并且仅适用于该顶级数组。 内部列表直接解码为 ds_lists,而不包含在 ds_map 中。


通常你会知道 JSON 解码的键,但如果没有,那么你可以使用 ds_map_sizeds_map_find_firstds_map_find_next 函数来解析映射并获取必要的信息。

注意GameMaker Studio 2 从 JSON 创建必要的 ds_maps 和列表,并且为了清理你只需要删除 顶级 映射或列表,GameMaker Studio 2 将自动从内存中删除其下所有映射和列表。


语法:

json_decode(string)


参数 描述
string 要传递给函数进行解码的 JSON 格式字符串


返回:

ds_map id,如果失败则返回 -1


例如:

var resultMap = json_decode(requestResult);
var list = ds_map_find_value(resultMap, "default");
var size = ds_list_size(list);
for (var n = 0; n < ds_list_size(list); n++;)
   {
   var map = ds_list_find_value(list, n);
   var curr = ds_map_find_first(map);
   while (is_string(curr))
      {
      global.Name[n] = ds_map_find_value(map, "name");
      curr = ds_map_find_next(map, curr);
      }
   }
ds_map_destroy(resultMap);

上面的代码将解码 JSON 字符串并解析它以生成全局数组。