1. 程式人生 > 其它 >第五章 Caché JSON 快速參考動態實體方法

第五章 Caché JSON 快速參考動態實體方法

技術標籤:Caché JSONCachéCacheJSON序列化反序列化

文章目錄

第五章 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()