Гость
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Глобалы в json / 24 сообщений из 24, страница 1 из 1
25.09.2015, 07:12
    #39060810
kassman
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Глобалы в json
Каким образом в каше можно преобразовать глобалы в json?Есть данные в глобалах которые нужно сохранить в json
...
Рейтинг: 0 / 0
25.09.2015, 08:12
    #39060821
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Глобалы в json
kassmanКаким образом в каше можно преобразовать глобалы в json?Просто сформировать строку...
Только если данных много - нарвешься на ограничение по размеру строки.

Если ответ в формате json выдает csp страница - тогда просто выводи "строчную информацию" и все. w "[",!
 w "0,",!
 w "1,",!
 w "2",!
 w "]",!Или так &html<[>
 &html<{>
 &html<"name": "#(name)#",>
 &html<"age": "#(age)#">
 &html<}>
 &html<]>
...
Рейтинг: 0 / 0
25.09.2015, 08:49
    #39060844
kassman
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Глобалы в json
krvsa,
спасибо,я это понял,нет ли в каше готовых преобразователей глобалов в json?
...
Рейтинг: 0 / 0
25.09.2015, 09:09
    #39060864
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Глобалы в json
kassmanнет ли в каше готовых преобразователей глобалов в json?
Нет.
...
Рейтинг: 0 / 0
25.09.2015, 09:14
    #39060868
DAiMor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Глобалы в json
kassman,

в версиях до 2015.3 можно сделать так, двумя способами
с использованием стороннего класса можно сконвертировать объекты %ArrayOfDataTypes и %ListOfDataTypes в объект и массив, поддерживается вложенность, возращается строка, возможна проблема с превышением длины строки
и второй способ с помощью класса из ZEN который может несколько больше

в 2015.3 появился нативный JSON и там правда тоже нету из глобала в JSON но, сформировать объект и вывести его уже значительно проще и меньше ограничений, и работает намного быстрее
...
Рейтинг: 0 / 0
25.09.2015, 10:59
    #39060992
eduard93
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Глобалы в json
Если структура глобал у вас key-value, то можно использовать такой приём: set obj = ##class(%ZEN.proxyObject).%New()
 m obj.%data = ^gbl
 set st = obj.%ToJSON()
...
Рейтинг: 0 / 0
25.09.2015, 11:04
    #39060998
eduard93
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Глобалы в json
eduard93Если структура глобал у вас key-value, то можно использовать такой приём: set obj = ##class(%ZEN.proxyObject).%New()
 m obj.%data = ^gbl
 set st = obj.%ToJSON()Точнее, если вам надо выводить кусок с key-value. Можно же и сабскрипт передать.
...
Рейтинг: 0 / 0
25.09.2015, 12:19
    #39061142
servit
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Глобалы в json
kassmankrvsa,
спасибо,я это понял,нет ли в каше готовых преобразователей глобалов в json? Есть .

В версии 2015.3 стало ещё проще:
json.mac#include %occStatus

main() {
  
  s where="^glb"
  s id=10

  k @where
  
  d ##class(%Document.Object).CSON(
    {
      "null": null,
      "boolean": true,
      "number": 45.67,
      "numberBOOL": 1,
      "string": "45.67",
      "stringNULL": "null",
      "stringEMPTY": "",
      "string0": $c(0),
      "object":
        {
          "login": "jxcoder",
          "age": 23,
          "array": ["12",34]
        }
    }.$toJSON()
  ).save(where,id)
  
  zw @where
  
  s doc=##class(%Document.Object).open(where,id,.sc)
  
  if $$$ISOK(sc) {
    w !,"string = ",doc."""string""",!!
    d doc.show()
  } else {
    d $system.OBJ.DisplayError(sc)
  }
  
}
PS: главное, не запутайтесь между JSON и CSON.
...
Рейтинг: 0 / 0
25.09.2015, 15:00
    #39061375
Valeriu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Глобалы в json
...
Рейтинг: 0 / 0
25.09.2015, 15:50
    #39061433
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Глобалы в json
CSON!
Ребята c юмором.
...
Рейтинг: 0 / 0
26.09.2015, 09:24
    #39061832
kassman
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Глобалы в json
servit,спасибо,у меня версия 2012.2.Не могли бы вы дать ссылку,дропбокс на 2015.3.П.С искал в гуглах не нашел.На интерсистемском сайте не получилось скачать,требует wrc login
...
Рейтинг: 0 / 0
26.09.2015, 10:33
    #39061846
DAiMor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Глобалы в json
kassmanservit,спасибо,у меня версия 2012.2.Не могли бы вы дать ссылку,дропбокс на 2015.3.П.С искал в гуглах не нашел.На интерсистемском сайте не получилось скачать,требует wrc login2015.3 доступна только тем кто имеет доступ в WRC, обратитесь в InterSystems вам может сделают доступ
...
Рейтинг: 0 / 0
29.09.2015, 12:27
    #39064027
Sabyrov.Talgat
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Глобалы в json
Такой глобал

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
1: 	^global1(1)	= 	123
2:  	^global1(1,1)	= 	5555
3:  	^global1(1,1,1)	= 	111
4:  	^global1(1,2)	= 	12
5:  	^global1(1,3)	= 	13
6:  	^global1(2)	= 	2
7:  	^global1(2,1)	= 	21
8:  	^global1(2,2)	= 	22
9:  	^global1(2,3)	= 	23
10:  	^global1(3)	= 	3
11:  	^global1(3,1)	= 	31
12:  	^global1(3,2)	= 	32
13:  	^global1(3,3)	= 	33
14:  	^global1(4)	= 	4
15:  	^global1(4,1)	= 	41
16:  	^global1(4,2)	= 	42
17:  	^global1(4,3)	= 	43

пробовал так: set obj = ##class(%ZEN.proxyObject).%New()
 m obj.%data = ^global1
 do obj.%ToJSON()Вывел такой результат:
Код: javascript
1.
2.
3.
4.
5.
6.
{
  "1":123,
  "2":2,
  "3":3,
  "4":4
}

Я так понял, что  m obj.%data = ^global1
 do obj.%ToJSON()
выводит только первый уровень узлов.
А как тогда тогда составить полную JSON, с подуровнями глобала?
...
Рейтинг: 0 / 0
29.09.2015, 12:35
    #39064037
DAiMor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Глобалы в json
Sabyrov.Talgat,

Для такого глобала, вы сначала подумайте, как вы хотите его видеть в формате JSON
напрямую любой глобал так не представить
...
Рейтинг: 0 / 0
29.09.2015, 14:15
    #39064210
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Глобалы в json
DAiMorнапрямую любой глобал так не представить
Т.е.
krvsakassmanнет ли в каше готовых преобразователей глобалов в json?
Нет.
...
Рейтинг: 0 / 0
29.09.2015, 16:49
    #39064414
Глобалы в json
Можете попробовать вот такой вариант, но он Вам может не подойти, т.к. node.js: https://github.com/agsh/boobst#get
...
Рейтинг: 0 / 0
03.10.2015, 06:59
    #39067505
kassman
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Глобалы в json
DAiMor,Здравствуйте Set ^Data("Cambridge") = ""
 Set ^Data("New York") = ""
 Set ^Data("Boston") = ""
 Set ^Data("London","Stamford Bridge") = ""
 Set ^Data("Athens") = ""

 Set key = $Order(^Data(""))
 While (key '= "") {
     Write key,!
     Set key = $Order(^Data(key))
 }
Результат
Код: plaintext
1.
2.
3.
4.
Athens
Boston
Cambridge
London
New York

Каким образом можно вывести значения всех ветвей?
...
Рейтинг: 0 / 0
03.10.2015, 08:10
    #39067512
DAiMor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Глобалы в json
$order ходит только по одному уровню, соответственно нужна рекурсия
$query обходит весь Глобал целиком, для получения списка индексов можно воспользоваться $qsubscript
...
Рейтинг: 0 / 0
05.10.2015, 10:52
    #39068165
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Глобалы в json
kassmanКаким образом можно вывести значения всех ветвей?
Как вариант, проверять

w $d(@Name)

Если есть подузлы - применять рекурсию или работать с именем глобальной переменной...
...
Рейтинг: 0 / 0
23.02.2016, 08:18
    #39176995
kassman
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Глобалы в json
Здравствуйте, возникла проблема с преобразованием данных из глобала в json
Есть данные в глобале
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
01: ^etbg("<rel>","blok1","lesson1")	=	"child"
02: ^etbg("<rel>","blok1","lesson1","<percent>")	=	100
03: ^etbg("<rel>","blok1","lesson2")	=	"child"
04: ^etbg("<rel>","blok1","lesson2","<percent>")	=	50
05: ^etbg("<rel>","blok2","lesson3")	=	"child"
06: ^etbg("<rel>","blok2","lesson3","<percent>")	=	30
07: ^etbg("<rel>","blok2","lesson4")	=	"child"
08: ^etbg("<rel>","blok2","lesson4","<percent>")	=	30
09: ^etbg("<rel>","blok3","lesson5")	=	"child"
10: ^etbg("<rel>","blok3","lesson5","<percent>")	=	30
11: ^etbg("<rel>","blok3","lesson6")	=	"child"
12: ^etbg("<rel>","blok3","lesson6","<percent>")	=	30
13: ^etbg("<rel>","blok4","lesson7")	=	"child"
14: ^etbg("<rel>","blok4","lesson7","<percent>")	=	30
15: ^etbg("<rel>","blok4","lesson8")	=	"child"
16: ^etbg("<rel>","blok4","lesson8","<percent>")	=	30
17: ^etbg("<rel>","blok5","lesson10")	=	"child"
18: ^etbg("<rel>","blok5","lesson10","<percent>")	=	30
19: ^etbg("<rel>","blok5","lesson9")	=	"child"
20: ^etbg("<rel>","blok5","lesson9","<percent>")	=	30
21: ^etbg("<rel>","blok6","lesson11")	=	"child"
22: ^etbg("<rel>","blok6","lesson11","<percent>")	=	30
23: ^etbg("<rel>","blok6","lesson12")	=	"child"
24: ^etbg("<rel>","blok6","lesson12","<percent>")	=	30
25: ^etbg("<rel>","blok7","lesson13")	=	"child"
26: ^etbg("<rel>","blok7","lesson13","<percent>")	=	30
27: ^etbg("<rel>","blok7","lesson14")	=	"child"
28: ^etbg("<rel>","blok7","lesson14","<percent>")	=	30
29: ^etbg("<rel>","blok8","lesson15")	=	"child"
30: ^etbg("<rel>","blok8","lesson15","<percent>")	=	30
31: ^etbg("<rel>","blok8","lesson16")	=	"child"
32: ^etbg("<rel>","blok8","lesson16","<percent>")	=	30
33: ^etbg("<rel>","blok9","lesson17")	=	"child"
34: ^etbg("<rel>","blok9","lesson17","<percent>")	=	30
35: ^etbg("<rel>","blok9","lesson18")	=	"child"
36: ^etbg("<rel>","blok9","lesson18","<percent>")	=	30
37: ^etbg("<rel>","book1","module1")	=	"child"
38: ^etbg("<rel>","book1","module1","<percent>")	=	20
39: ^etbg("<rel>","book1","module2")	=	"child"
40: ^etbg("<rel>","book1","module2","<percent>")	=	20
41: ^etbg("<rel>","book1","module3")	=	"child"
42: ^etbg("<rel>","book1","module3","<percent>")	=	20
43: ^etbg("<rel>","lesson5","theme")	=	"child"
44: ^etbg("<rel>","lesson5","theme","<percent>")	=	111
45: ^etbg("<rel>","lesson6","theme2")	=	"child"
46: ^etbg("<rel>","lesson6","theme2","<percent>")	=	0
47: ^etbg("<rel>","module1","blok1")	=	"child"
48: ^etbg("<rel>","module1","blok1","<percent>")	=	20
49: ^etbg("<rel>","module1","blok2")	=	"child"
50: ^etbg("<rel>","module1","blok2","<percent>")	=	20
51: ^etbg("<rel>","module1","blok3")	=	"child"
52: ^etbg("<rel>","module1","blok3","<percent>")	=	20
53: ^etbg("<rel>","module2","blok4")	=	"child"
54: ^etbg("<rel>","module2","blok4","<percent>")	=	20
55: ^etbg("<rel>","module2","blok5")	=	"child"
56: ^etbg("<rel>","module2","blok5","<percent>")	=	20
57: ^etbg("<rel>","module2","blok6")	=	"child"
58: ^etbg("<rel>","module2","blok6","<percent>")	=	20
59: ^etbg("<rel>","module3","blok7")	=	"child"
60: ^etbg("<rel>","module3","blok7","<percent>")	=	20
61: ^etbg("<rel>","module3","blok8")	=	"child"
62: ^etbg("<rel>","module3","blok8","<percent>")	=	20
63: ^etbg("<rel>","module3","blok9")	=	"child"
64: ^etbg("<rel>","module3","blok9","<percent>")	=	100
В <rel> указаны связи, 2 подузел записи - это родитель, а 3 - это потомок.
Нужный мне вариант json
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
{
 book:{
    module1:{
       blok1:{
          lesson1:{},
          lesson2:{}
       },
       blok2:{
         lesson3:{},
         lesson4:{}
       },
       blok3:{
         lesson5:{},
         lesson6:{}
       }
    },
    module2:{
       blok4:{
         lesson:{},
         ...
       },
       blok5:{
       },
       blok6:{
       }
    },
    module3:{
       blok7:{
       },
       blok8:{
       },
       blok9:{
       }
    }
 }
}
Реализовал только до 2 уровня т.е
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
{
 book:{
    module1:{
      
    },
    module2:{
      
    },
    module3:{
      
    }
 }
}
Как можно вывести json (до элемента без потомков)
...
Рейтинг: 0 / 0
23.02.2016, 09:43
    #39177008
servit
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Глобалы в json
kassmanКак можно вывести json (до элемента без потомков)
...
Рейтинг: 0 / 0
24.02.2016, 15:39
    #39177880
servit
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Глобалы в json
kassmanservit,спасибо,у меня версия 2012.2
<2016.1test.mac
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
#include %systemInclude

main() public {
  try{
    d init
    s json= ##class(%ZEN.proxyObject).%New()
    
    s key1=$o(^tmp("<rel>",""))
    while key1'="" {
      
      i $g(val(key1))="" {
        s val(key1)= ##class(%ZEN.proxyObject).%New()
        d json.%DispatchSetProperty(key1,val(key1))
      }
      
      s key2=$o(^tmp("<rel>",key1,""))
      while key2'="" {
        
        i $g(val(key2))="" {
          s val(key2)= ##class(%ZEN.proxyObject).%New()
        }else{
          k json.%data(key2)
          s json.%changed = 1
        }
        d val(key1).%DispatchSetProperty(key2,val(key2))

        s key2=$o(^tmp("<rel>",key1,key2))
      }
      s key1=$o(^tmp("<rel>",key1))
    }
    k val
    d json.%ToJSON(,"2aelow")
    
  }catch(ex){
    w "Error ",ex.DisplayString(),!
  }
  k ^tmp
}

init() {
    k ^tmp
    s ^tmp("<rel>","blok1","lesson1")  =  "child"
    s ^tmp("<rel>","blok1","lesson1","<percent>")  =  100
    s ^tmp("<rel>","blok1","lesson2")  =  "child"
    s ^tmp("<rel>","blok1","lesson2","<percent>")  =  50
    s ^tmp("<rel>","blok2","lesson3")  =  "child"
    s ^tmp("<rel>","blok2","lesson3","<percent>")  =  30
    s ^tmp("<rel>","blok2","lesson4")  =  "child"
    s ^tmp("<rel>","blok2","lesson4","<percent>")  =  30
    s ^tmp("<rel>","blok3","lesson5")  =  "child"
    s ^tmp("<rel>","blok3","lesson5","<percent>")  =  30
    s ^tmp("<rel>","blok3","lesson6")  =  "child"
    s ^tmp("<rel>","blok3","lesson6","<percent>")  =  30
    s ^tmp("<rel>","blok4","lesson7")  =  "child"
    s ^tmp("<rel>","blok4","lesson7","<percent>")  =  30
    s ^tmp("<rel>","blok4","lesson8")  =  "child"
    s ^tmp("<rel>","blok4","lesson8","<percent>")  =  30
    s ^tmp("<rel>","blok5","lesson10")  =  "child"
    s ^tmp("<rel>","blok5","lesson10","<percent>")  =  30
    s ^tmp("<rel>","blok5","lesson9")  =  "child"
    s ^tmp("<rel>","blok5","lesson9","<percent>")  =  30
    s ^tmp("<rel>","blok6","lesson11")  =  "child"
    s ^tmp("<rel>","blok6","lesson11","<percent>")  =  30
    s ^tmp("<rel>","blok6","lesson12")  =  "child"
    s ^tmp("<rel>","blok6","lesson12","<percent>")  =  30
    s ^tmp("<rel>","blok7","lesson13")  =  "child"
    s ^tmp("<rel>","blok7","lesson13","<percent>")  =  30
    s ^tmp("<rel>","blok7","lesson14")  =  "child"
    s ^tmp("<rel>","blok7","lesson14","<percent>")  =  30
    s ^tmp("<rel>","blok8","lesson15")  =  "child"
    s ^tmp("<rel>","blok8","lesson15","<percent>")  =  30
    s ^tmp("<rel>","blok8","lesson16")  =  "child"
    s ^tmp("<rel>","blok8","lesson16","<percent>")  =  30
    s ^tmp("<rel>","blok9","lesson17")  =  "child"
    s ^tmp("<rel>","blok9","lesson17","<percent>")  =  30
    s ^tmp("<rel>","blok9","lesson18")  =  "child"
    s ^tmp("<rel>","blok9","lesson18","<percent>")  =  30
    s ^tmp("<rel>","book1","module1")  =  "child"
    s ^tmp("<rel>","book1","module1","<percent>")  =  20
    s ^tmp("<rel>","book1","module2")  =  "child"
    s ^tmp("<rel>","book1","module2","<percent>")  =  20
    s ^tmp("<rel>","book1","module3")  =  "child"
    s ^tmp("<rel>","book1","module3","<percent>")  =  20
    s ^tmp("<rel>","lesson5","theme")  =  "child"
    s ^tmp("<rel>","lesson5","theme","<percent>")  =  111
    s ^tmp("<rel>","lesson6","theme2")  =  "child"
    s ^tmp("<rel>","lesson6","theme2","<percent>")  =  0
    s ^tmp("<rel>","module1","blok1")  =  "child"
    s ^tmp("<rel>","module1","blok1","<percent>")  =  20
    s ^tmp("<rel>","module1","blok2")  =  "child"
    s ^tmp("<rel>","module1","blok2","<percent>")  =  20
    s ^tmp("<rel>","module1","blok3")  =  "child"
    s ^tmp("<rel>","module1","blok3","<percent>")  =  20
    s ^tmp("<rel>","module2","blok4")  =  "child"
    s ^tmp("<rel>","module2","blok4","<percent>")  =  20
    s ^tmp("<rel>","module2","blok5")  =  "child"
    s ^tmp("<rel>","module2","blok5","<percent>")  =  20
    s ^tmp("<rel>","module2","blok6")  =  "child"
    s ^tmp("<rel>","module2","blok6","<percent>")  =  20
    s ^tmp("<rel>","module3","blok7")  =  "child"
    s ^tmp("<rel>","module3","blok7","<percent>")  =  20
    s ^tmp("<rel>","module3","blok8")  =  "child"
    s ^tmp("<rel>","module3","blok8","<percent>")  =  20
    s ^tmp("<rel>","module3","blok9")  =  "child"
    s ^tmp("<rel>","module3","blok9","<percent>")  =  100
    ;s ^tmp("<rel>","theme","book1")  =  "child"
    ;s ^tmp("<rel>","theme","book1","<percent>")  =  20
}
Результат:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
USER>d ^test
{
  "book1": {
    "module1": {
      "blok1": {
        "lesson1": {
        },
        "lesson2": {
        }
      },
      "blok2": {
        "lesson3": {
        },
        "lesson4": {
        }
      },
      "blok3": {
        "lesson5": {
          "theme": {
          }
        },
        "lesson6": {
          "theme2": {
          }
        }
      }
    },
    "module2": {
      "blok4": {
        "lesson7": {
        },
        "lesson8": {
        }
      },
      "blok5": {
        "lesson10": {
        },
        "lesson9": {
        }
      },
      "blok6": {
        "lesson11": {
        },
        "lesson12": {
        }
      }
    },
    "module3": {
      "blok7": {
        "lesson13": {
        },
        "lesson14": {
        }
      },
      "blok8": {
        "lesson15": {
        },
        "lesson16": {
        }
      },
      "blok9": {
        "lesson17": {
        },
        "lesson18": {
        }
      }
    }
  }
}
>=2016.1test.mac
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
#include %systemInclude

main() public {
  try{
    d init
    s json={}
    
    s key1=$o(^tmp("<rel>",""))
    while key1'="" {
      
      i $g(val(key1))="" {
        s val(key1)={}
        d json.$set(key1,val(key1))
      }
      
      s key2=$o(^tmp("<rel>",key1,""))
      while key2'="" {
        
        i $g(val(key2))="" {
          s val(key2)={}
        }else{
          d json.$remove(key2)
        }
        d val(key1).$set(key2,val(key2))

        s key2=$o(^tmp("<rel>",key1,key2))
      }
      s key1=$o(^tmp("<rel>",key1))
    }
    k val
    w json.$toJSONFormat()
    
  }catch(ex){
    w "Error ",ex.DisplayString(),!
  }
  k ^tmp
}

init() {
  ; ...  
}
Результат аналогичный.
...
Рейтинг: 0 / 0
29.02.2016, 06:47
    #39181046
kassman
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Глобалы в json
servit,спасибо!
...
Рейтинг: 0 / 0
07.05.2016, 16:02
    #39231326
Шваров Евгений
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Глобалы в json
Внезапно эта же тема всплыла на DC.
...
Рейтинг: 0 / 0
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Глобалы в json / 24 сообщений из 24, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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