JsonHandler
所有文档

          AR开放平台

          JsonHandler

          此类封装JSON处理器相关操作,包括创建JSON字符串与解析JSON字符串

          Public methods
          void add_number_to_object(cJSON object, string key, number value)
          将一个数字加在一个节点下
          void add_object_to_array(cJSON array_object, cJSON sub_object)
          将一个节点添加到一个数组节点下
          void add_object_to_object(cJSON object, string key, cJSON sub_object)
          将一个节点加在另一个节点下
          void add_string_to_object(cJSON object, string key, string value)
          将一个字符串加在一个节点下
          cJSON create_array_object()
          创建一个数组节点
          cJSON create_array_object()
          创建一个节点
          cJSON create_object()
          创建一个数组节点
          void delete_object(cJSON object)
          释放节点内存。注:使用完后将root节点放入释放内存即可
          cJSON get_array_object_size(cJSON object)
          获取数组节点的大小
          cJSON get_double_value(cJSON object, string key)
          获取节点中的浮点值
          int get_int_value(cJSON object, string key)
          获取节点中的整型值
          cJSON get_object(cJSON object, string key)
          从一个节点中通过key获取另一个子节点
          cJSON get_object_by_index(cJSON object, int index)
          通过序号来获取某个子节点,在父节点是一个数组类节点时使用
          string get_string_value(cJSON object, string key)
          获取节点中的字符串值
          bool if_has_object(cJSON object, string key)
          判断该节点里是否有某个子元素,包含object、int、double、string
          JsonHandler JsonHandlerDemo()
          Demo.
          cJSON parse(string data)
          解析一个JSON字符串
          string print(cJSON object)
          将一个节点转换为字符串

          JsonHandlerDemo

          JsonHandlerDemo ()

          dem示例

          sample:
          local root = JsonHandler:create_object()
          local array = JsonHandler:create_array_object()
          
          local pitem1 = JsonHandler:create_object()
          JsonHandler:add_string_to_object(pitem1, "name", "zhangsan")
          JsonHandler:add_number_to_object(pitem1, "age", 22)
          JsonHandler:add_number_to_object(pitem1, "height", 178.23)
          
          local pitem2 = JsonHandler:create_object()
          JsonHandler:add_string_to_object(pitem2, "name", "lisi")
          JsonHandler:add_number_to_object(pitem2, "age", 26)
          JsonHandler:add_number_to_object(pitem2, "height", 184.56)
          
          JsonHandler:add_object_to_array(array, pitem1)
          
          JsonHandler:add_object_to_array(array, pitem2)
          
          JsonHandler:add_object_to_object(root, "person", array)
          
          local data = JsonHandler:print(root)
           io.write("json test answer:"..data)
          
          local root = JsonHandler:parse(data)
          local person = JsonHandler:get_object(root, "person")
          
          if (JsonHandler:if_has_object(root,"person")) then
          io.write("json test have person:")
          else
           io.write("json test have no person:")
          end
          if (JsonHandler:if_has_object(root,"personnnnnnn")) then
           io.write("json test personnnnnnn:")
          else
           io.write("json test no personnnnnnn:")
          end
          local size = JsonHandler:get_array_object_size(person)
           io.write("json test size:"..size)
          
          local first_person = JsonHandler:get_object_by_index(person, 0)
          local f_name = JsonHandler:get_string_value(first_person, "name")
          local age = JsonHandler:get_int_value(first_person, "age")
          local height = JsonHandler:get_double_value(first_person, "height")
           io.write("json test 1:"..f_name..","..age..","..height)
          
          local first_person = JsonHandler:get_object_by_index(person, 1)
          local f_name = JsonHandler:get_string_value(first_person, "name")
          local age = JsonHandler:get_int_value(first_person, "age")
          local height = JsonHandler:get_double_value(first_person, "height")
           io.write("json test 2:"..f_name..","..age..","..height)
          JsonHandler:delete_object(root)

          add_number_to_object

          void add_number_to_object (cJSON object, string key, number value)

          将一个数字加在一个节点下

          Parameters

          • object | cJSON:节点
          • key | string:子节点的key值
          • value | number:子节点的value值,数字类型
          sample:
          JsonHandler:add_number_to_object(root, "key", 100)
          JsonHandler:add_number_to_object(root, "key", 50.50)

          add_object_to_array

          void add_object_to_array (cJSON array_object, cJSON sub_object)

          将一个节点添加到一个数组节点下

          Parameters

          • array_object | cJSON:会被添加的数组节点
          • sub_object | cJSON:子节点的key值 注意:建议在sub_object数据完整后再把sub_object加在其父数组节点下
          sample:
          local array = JsonHandler:create_array_object()
          
          local pitem1 = JsonHandler:create_object()
          local pitem2 = JsonHandler:create_object()
          JsonHandler:add_object_to_array(array, pitem1)
          JsonHandler:add_object_to_array(array, pitem2)

          add_object_to_object

          void add_object_to_object (cJSON object, string key, cJSON sub_object)

          将一个节点加在另一个节点下

          Parameters

          • object | cJSON:父节点
          • key | string:子节点的key值
          • sub_object cJSON:子节点 注意:建议在sub_object数据完整后再把sub_object加在其父节点下
          sample:
          JsonHandler:add_object_to_object(root, "objectname", subobject)

          add_string_to_object

          void add_string_to_object (cJSON object, string key, string value)

          将一个字符串加在一个节点下

          Parameters

          • object | cJSON:节点
          • key | string:子节点的key值
          • value | string:子节点的value值,字符串类型
          sample:
          JsonHandler:add_string_to_object(root, "key", "value")

          create_array_object

          cJSON create_array_object ()

          创建一个数组节点

          Returns

          • cJSON | cJSON* 节点指针
          sample:
          local root = JsonHandler:create_array_object()

          create_object

          cJSON create_object ()

          设置请求的url地址

          Returns

          • cJSON | cJSON* 节点指针
          sample:
          local root = JsonHandler:create_object()

          delete_object

          void delete_object (cJSON object)

          释放节点内存。注:使用完后将root节点放入释放内存即可

          Parameters

          • object | cJSON:被释放内存的节点,通常情况下放入根节点即可
          sample:
          JsonHandler:delete_object(root)

          get_array_object_size

          int get_array_object_size (cJSON object)

          获取数组节点的大小

          Parameters

          • object | cJSON:节点

          Returns

          • int | int
          sample:
          local size = JsonHandler:get_array_object_size(object)

          get_double_value

          double get_double_value (cJSON object, string key)

          获取节点中的浮点值

          Parameters

          • object | cJSON:父节点
          • key | string:要获取的节点名称

          Returns

          • double | double 如果节点中不存在对应key值则返回0
          sample:
          local double_value = JsonHandler:get_double_value(object, "key")

          get_int_value

          int get_int_value (cJSON object, string key)

          获取节点中的整型值

          Parameters

          • object | cJSON:父节点
          • key | string:要获取的节点名称

          Returns

          • int | int 如果节点中不存在对应key值则返回0 注意:如果获取的值过大,可能会产生int型越界的情况,此时请使用get_double_value
          sample:
          local int_value = JsonHandler:get_int_value(object, "key")

          get_object

          cJSON get_object (cJSON object, string key)

          从一个节点中通过key获取另一个子节点

          Parameters

          • object | cJSON:父节点
          • key | string:要获取的节点名称

          Returns

          • cJSON | JSON* 没有则返回nil
          sample:
          local sub_object = JsonHandler:get_object(object, "subobject_name")

          get_object_by_index

          cJSON get_object_by_index (cJSON object, int index)

          通过序号来获取某个子节点,在父节点是一个数组类节点时使用

          Parameters

          • object | cJSON:父节点, index 要获取的节点的下标
          • index | int:要获取的节点的下标

          Returns

          • cJSON | JSON* 没有则返回nil
          sample:
          local first_object = JsonHandler:get_object_by_index(object, 0)

          get_string_value

          string get_string_value (cJSON object, string key)

          获取节点中的字符串值

          Parameters

          • object | cJSON:父节点
          • key | string:要获取的节点名称

          Returns

          • string | string 如果节点中不存在对应key值则返回空字符串””
          sample:
          local string = JsonHandler:get_string_value(object, "key")

          if_has_object

          bool if_has_object (cJSON object, string key)

          判断该节点里是否有某个子元素,包含object、int、double、string

          Parameters

          • object | cJSON:父节点
          • key | string:要获取的节点名称

          Returns

          • bool | bool true 表示有 false 表示没有
          sample:
          JsonHandler:if_has_object(object, "subobject_name")

          parse

          cJSON parse (string data)

          解析一个JSON字符串

          Parameters

          • data | string:string类型

          Returns

          • cJSON | JSON* 无法解析则返回nil
          sample:
          local root = JsonHandler:parse(data)

          print

          string print (cJSON object)

          将一个节点转换为字符串

          Parameters

          • object | cJSON:被转换为字符串的节点

          Returns

          • string | std::string 得到json字符串
          sample:
          local data = JsonHandler:print(root)
          io.write("json test answer:"..data)
          上一篇
          BatchLoader
          下一篇
          PaddleImgseg