美文网首页
第五章 Caché JSON 快速参考动态实体方法

第五章 Caché JSON 快速参考动态实体方法

作者: Cache技术分享 | 来源:发表于2021-01-01 07:03 被阅读0次

    第五章 Caché JSON 快速参考动态实体方法

    方法详细信息

    本节列出所有可用的动态实体方法,简要地描述每个方法并提供进一步信息的链接。所有方法都可用于对象和数组,除了%Push()%Pop()之外,%Push()%Pop()只适用于数组

    %FromJSON()

    给定一个JSON源,解析该源并返回一个数据类型为%DynamicAbstractObject的对象,该对象包含已解析的JSON。如果解析过程中出现错误,将抛出异常。

    classmethod %FromJSON(str) as %DynamicAbstractObject
    

    参数

    • str 输入的参数可以来自下列任何一个来源:
    1. 包含源的字符串值。
    2. 要从中读取源的流对象。
    3. 可以读取源代码的文件URI。该文件必须编码为UTF-8。

    类引用:%DynamicAbstractObject.%FromJSON()

    %Get()

    给定一个有效的对象键或数组索引,返回该值。如果该值不存在,则返回一个空字符串“”

     method %Get(key) as %CacheString
    

    参数

    • key 要检索的值的对象键或数组索引。数组索引必须作为标准整数值传递。数组索引从位置0开始。

    类引用: %DynamicObject.%Get()%DynamicArray.%Get()

    %GetIterator()

    返回一个%Iterator器对象,允许对一个动态实体的所有成员进行迭代。

     method %GetIterator() as %Iterator.AbstractIterator
    

    类引用: %DynamicObject.%GetIterator(), %DynamicArray.%GetIterator(), %Iterator.Object, %Iterator.Array

    %GetNext()

    %GetIterator()返回的%Iterator对象的方法。推进迭代器,如果迭代器位于有效元素上,则返回true;如果位于最后一个元素上,则返回false.键和值参数返回当前迭代器位置的有效元素的值。

    method getNext(Output key, Output value) as %Integer
    

    参数

    • key 返回元素当前位置的对象键或数组索引
    • value 返回元素在当前位置的值。

    类引用: %Iterator.Object.%GetNext() and %Iterator.Array.%GetNext()

    %GetTypeOf()

    给定有效的对象键或数组索引,返回表示该值的数据类型的字符串。

    method %GetTypeOf(key) as %String
    

    参数

    • key 要测试的值的对象键或数组索引。

    返回值

    • “null”—JSON null
    • “boolean” ——0(“false”)或非0(“true”)的数值
    • “number” ——任何标准的数值
    • “oref” ——对另一个缓存对象的引用
    • “object” ——嵌套的对象
    • “array” ——嵌套的数组
    • “string” ——标准的文本字符串
    • “unassigned” —属性或元素存在,但没有赋值

    类引用: %DynamicAbstractObject.%GetTypeOf()

    %IsDefined()

    测试键指定的项是否在对象中定义。如果项未赋值或不存在,则返回false。

    method %IsDefined(key) as %Boolean
    

    参数:
    key - 要测试的项的对象键或数组索引。数组索引必须作为标准整数值传递。数组索引从位置0开始。

    类引用:%DynamicObject.%IsDefined()%DynamicArray.%IsDefined()

    %Pop()

    返回数组中最后一个成员的值。然后从数组中删除该值。如果数组已经为空,则该方法返回空字符串“”。

    method %Pop() as %CacheString
    

    类引用: %DynamicArray.%Pop()

    %Push()

    给定一个新值,将其追加到当前数组的末尾,增加数组的长度。值返回一个oref,该oref引用当前修改的数组,允许对%Push()的调用被链接。

     method %Push(value, type) as %DynamicAbstractObject
    

    参数

    • value - 要分配给新数组元素的值。
    • key - 指示值的数据类型的可选字符串。可使用下列字符串:
    1. "null" JSON null。value参数必须是“”(空字符串)。
    2. "boolean" JSON为false(值参数必须为0)或为true(值参数必须为1)。
    3. "false" JSON false(值参数必须为0)
    4. "true" JSON true(值参数必须为1)
    5. "number" 将值转换为规范数值
    6. "string" 将值转换为文本字符串

    类引用: %DynamicArray.%Push()

    %Remove()

    从动态对象或数组中移除指定的元素,并返回被移除元素的值。如果元素的值是一个嵌入的动态对象或数组,那么也会删除所有从属节点。在动态数组中,删除的元素之后的所有元素的下标位置都将减少1。

    method %Remove(key) as %DynamicAbstractObject
    

    参数:
    key - 要删除的元素的对象键或数组索引。数组索引必须作为标准整数值传递。数组索引从位置0开始。

    类引用: %DynamicObject.%Remove() , %DynamicArray.%Remove()

    %Set()

    创建新值或更新现有值。返回对修改后的数组的引用,允许嵌套对%Set()的调用。

       method %Set(key, value, type) as %DynamicAbstractObject
    

    参数

    • key 要创建或更新的值的对象键或数组索引。数组索引必须作为标准整数值传递。数组索引从位置0开始。
    • value 用于更新以前的值或创建新值的新值。
    • type 指示值的数据类型的可选字符串。可使用下列字符串:
    1. "null" JSON null。value参数必须是“”(空字符串)。
    2. "boolean" JSON为false(值参数必须为0)或为true(值参数必须为1)。
    3. "false" JSON false(值参数必须为0)
    4. "true" JSON true(值参数必须为1)
    5. "number" 将值转换为规范数值
    6. "string" 将值转换为文本字符串

    类引用: %DynamicObject.%Set() , %DynamicArray.%Set()

    %Size()

    返回显示动态对象或数组大小的整数。对于数组,大小包括数组中未分配的项。对于对象,大小只包含已赋值的元素。

    method %Size() as %Integer
    

    类引用: %DynamicAbstractObject.%Size()

    %ToJSON()

    转换%DynamicAbstractObject的实例。转换成JSON字符串。

    method %ToJSON(outstrm As %Stream.Object) as %String
    

    参数

    • outstrm 以下几种可选择的值
    • 如果未指定outstrm并通过DO调用该方法,则将JSON字符串写入当前输出设备。
    • 如果未指定outstrm,且方法作为表达式调用,则JSON字符串将成为表达式的值。
    • 如果outstrm被指定为%Stream.Object的实例。对象,JSON字符串将被写入流中。
    • 如果outstrm是对象,但不是%Stream.Object的实例。对象,则会引发异常。
    • 如果outstrm不是一个对象,并且不是null,那么它将被假定为一个完全限定的文件规范(必须定义文件的完整路径)。该文件被链接到一个新创建的%Stream.FileCharacter 流,JSON字符串被写入该流,该流在完成时被保存到文件中。

    类引用: %DynamicAbstractObject.%ToJSON()

    相关文章

      网友评论

          本文标题:第五章 Caché JSON 快速参考动态实体方法

          本文链接:https://www.haomeiwen.com/subject/hcwdoktx.html