Как преобразовать пользовательскую строку пары ключ / значение в объект JSON в Azure Data Explorer? - PullRequest
0 голосов
/ 17 февраля 2020

Мне нужно было проанализировать строку свойств для объекта JSON. Вот формат ввода:

"var1=[val1] & var2=[val2] & var3=[val3] & var4=[val4]"

И желаемый вывод:

{
   "var1": "val1",
   "var2": "val2",
   "var3": "val3",
   "var4": "val4"
}

У меня есть ответ, см. Ниже ...

Ответы [ 2 ]

1 голос
/ 17 февраля 2020
Thanks Ziad Hammoud for providing this cool workaround!

print str = "var1=[val1] & var2=[val2] & var3=[val3] & var4=[val4]"
| extend str = replace("\\] & ", "&", replace("=\\[", "=", str))
| project Properties = parse_urlquery(str)['Query Parameters']
| where Properties.var2== "val2"
0 голосов
/ 17 февраля 2020

альтернативный метод будет использовать extract_all(), затем «преобразовать» массив в свойство bad, используя pack() и make_bag():

print str = "var1=[val1] & var2=[val2] & var3=[val3] & var4=[val4]"
| project Properties = extract_all(@"(?P<key>\w+)?=\[(?P<value>.*?)\]", dynamic(["key","value"]), str)
| mv-apply Properties on (
    summarize make_bag(pack(tostring(Properties[0]), Properties[1]))
)
...