diff --git a/ccc.md b/ccc.md index 55646e9cda22b3e9773cfd8992d1421f741be1c8..a3f4172cfdb14c3a16a5dbd6277e5722e193e345 100644 --- a/ccc.md +++ b/ccc.md @@ -1,13 +1,22 @@ -```cls -/// Description: 以某固定分隔符拼接多个字符 -ClassMethod ConnactString(split = ",", pArgs...) +```apex +/// Description: 字符串或流转json +/// Input: data - json格式的字符串或流 +ClassMethod JSONParse(data) As %DynamicArray { - s ret = "" - for i = 1 : 1 : pArgs { - s str = pArgs(i) - continue:(str = "") - s ret = $s(ret = "" : str , 1 : ret _ split _ str) + s stream = ##class(%GlobalCharacterStream).%New() + if $IsObject(data) { + d stream.CopyFrom(data) + }else{ + d stream.Write(data) } - q ret + + if (stream.Read(1) = "[") { + s tObj=##class(%DynamicArray).%New() + } else { + s tObj=##class(%DynamicObject).%New() + } + d stream.Rewind() + s jsonData = tObj.%FromJSON(stream) + q jsonData } ``` \ No newline at end of file