parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

Ответ

G_Z 06.01.2022 16:44 / 06.01.2022 16:49

Есть хеш:
$.points[
[
$.name[Васильківська вулиця, 34]
$.lat[50.3937780136488]
$.lng[30.4854994680207]
]
[
$.name[$name]
$.lat[$lat]
$.lng[$lng]
]
]
Это не хеш, а какая-то ерунда со скобками.

Чтобы получить массив объектов, проще всего использовать таблицу, а не хеш:
$points[^table::create{name	lat	lng
one	50.3937780136488	30.4854994680207
two	50.0136488393778	30.4680207485499
}]
$points[
	$.points[$points]
]

^json:string[$points]
{
	"points":[
		{"name":"one","lat":"50.3937780136488","lng":"30.4854994680207"},
		{"name":"two","lat":"50.0136488393778","lng":"30.4680207485499"}
	]
}
Но все значения будут строками, так как таблица хранит только их.

Либо привести хеш в порядок и сформировать JSON вручную:
$points[
	$.1[
		$.name[one]
		$.lat(50.3937780136488)
		$.lng(30.4854994680207)
	]
	$.2[
		$.name[two]
		$.lat(50.0136488393778)
		$.lng(30.4680207485499)
	]
]

{
	"points": [^points.foreach[;point]{^json:string[$point]}[,]]
}