|
Проблема с jsonProvider в >=2014.1.1
|
|||
---|---|---|---|
#18+
Доброго времени суток! Столкнулся со следующей проблеме. В версиях 2014.1.1 и 2014.2 результатом выполнения кода: $$$ThrowOnError(##class(%ZEN.Auxiliary.jsonProvider).%WriteJSONStreamFromObject(.stream,dirOb,,,1,"aeloq")) s res=stream.Read() w res,!является:{"OutputList":["3@%ZEN.proxyObject","2@%ZEN.proxyObject", ... ]}В то время как в версиях ранее (в частности 2013.2 и 2014.1.0) результатом было полное отображение с заданными свойствами:{"OutputList":[{"Description":"Изменение...","Id":424,"Name":"A2"},{"Description":"Изме...я","Id":425,"Name":"A3"}]}Код метода и данные на которых он работает абсолютно идентичны. Подскажите, каким образом в новых версиях можно добиться вывода, как во втором случае. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.09.2014, 13:29 |
|
Проблема с jsonProvider в >=2014.1.1
|
|||
---|---|---|---|
#18+
DKspider , Этот код в 2014.2 выводит полностью объект s t1=##class(%ZEN.proxyObject).%New() s t1.Description="Изменение..." s t1.Id=424 s t1.Name="A2" s t2=##class(%ZEN.proxyObject).%New() s t2.Description="Изме...я" s t2.Id=425 s t2.Name="A3" s dirOb=##class(%ZEN.proxyObject).%New() s dirOb.OutputList=##class(%ListOfDataTypes).%New() d dirOb.OutputList.Insert(t1) d dirOb.OutputList.Insert(t2) $$$ThrowOnError(##class(%ZEN.Auxiliary.jsonProvider).%WriteJSONStreamFromObject(.stream,dirOb,,,$$$YES,"aeloq")) s res=stream.Read() w res,! Показывайте Ваш код. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.09.2014, 14:22 |
|
Проблема с jsonProvider в >=2014.1.1
|
|||
---|---|---|---|
#18+
servit, Да, действительно, при явном объявлении %ZEN.proxyObject на верхнем уровне работает как нужно, как-то я не подумал проверить. Спасибо. В прошлых версиях аналогично работал и такой вариант:Class ep.utils.JSON Extends %RegisteredObject { Property OutputList As list Of %ListOfDataTypes; ... ClassMethod getTestList() As %String { s dirOb=..%New() set tempVal=##class(%ZEN.proxyObject).%New() s tempVal.Id=1 s tempVal.Name="test" do dirOb.OutputList.Insert(tempVal) set tempVal=##class(%ZEN.proxyObject).%New() s tempVal.Id=2 s tempVal.Name="test2" do dirOb.OutputList.Insert(tempVal) $$$ThrowOnError(##class(%ZEN.Auxiliary.jsonProvider).%WriteJSONStreamFromObject(.stream,dirOb,,,1,"aeloq")) s res=stream.Read() w res,! } ... } ... |
|||
:
Нравится:
Не нравится:
|
|||
26.09.2014, 15:13 |
|
|
start [/forum/topic.php?fid=39&msg=38759075&tid=1556802]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
43ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
45ms |
get tp. blocked users: |
2ms |
others: | 280ms |
total: | 418ms |
0 / 0 |