powered by simpleCommunicator - 2.0.38     © 2025 Programmizd 02
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Проблема с jsonProvider в >=2014.1.1
4 сообщений из 4, страница 1 из 1
Проблема с jsonProvider в >=2014.1.1
    #38758830
DKspider
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток!
Столкнулся со следующей проблеме. В версиях 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"}]}Код метода и данные на которых он работает абсолютно идентичны.
Подскажите, каким образом в новых версиях можно добиться вывода, как во втором случае.
...
Рейтинг: 0 / 0
Проблема с jsonProvider в >=2014.1.1
    #38758922
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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,!  Показывайте Ваш код.
...
Рейтинг: 0 / 0
Проблема с jsonProvider в >=2014.1.1
    #38759010
DKspider
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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,!
}
...
}
...
Рейтинг: 0 / 0
Проблема с jsonProvider в >=2014.1.1
    #38759075
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DKspider ,

Вместо

Property OutputList As list Of %ListOfDataTypes;

должно быть

Property OutputList As list Of %ListOfObjects;
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Проблема с jsonProvider в >=2014.1.1
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]