第五章 Caché JSON 快速參考動態實體方法
技術標籤:Caché JSONCachéCacheJSON序列化反序列化
文章目錄
-
第五章 Caché JSON 快速參考動態實體方法 - 方法詳細資訊
第五章 Caché JSON 快速參考動態實體方法
方法詳細資訊
本節列出所有可用的動態實體方法,簡要地描述每個方法並提供進一步資訊的連結。所有方法都可用於物件和陣列,除了%Push()
%Pop()
之外,%Push()
和%Pop()
只適用於陣列。
%FromJSON()
給定一個JSON源,解析該源並返回一個數據型別為%DynamicAbstractObject
的物件,該物件包含已解析的JSON。如果解析過程中出現錯誤,將丟擲異常。
classmethod %FromJSON(str) as %DynamicAbstractObject
引數
- str 輸入的引數可以來自下列任何一個來源:
- 包含源的字串值。
- 要從中讀取源的流物件。
- 可以讀取原始碼的檔案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 - 指示值的資料型別的可選字串。可使用下列字串:
"null"
JSON null。value引數必須是“”(空字串)。"boolean"
JSON為false(值引數必須為0)或為true(值引數必須為1)。"false"
JSON false(值引數必須為0)"true"
JSON true(值引數必須為1)"number"
將值轉換為規範數值- "
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 指示值的資料型別的可選字串。可使用下列字串:
"null"
JSON null。value引數必須是“”(空字串)。"boolean"
JSON為false(值引數必須為0)或為true(值引數必須為1)。"false"
JSON false(值引數必須為0)"true"
JSON true(值引數必須為1)"number"
將值轉換為規範數值"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()