У меня есть вложенная строка json, которую я анализирую с помощью функции parse_json(). Пример данных выглядит так
{ "один": "OneValue", "четыре""FourValue", {"1":"stringA", "24":"stringBlah"..}}
Значения «1» и «24» во вложенной строке json являются ключами к таблице сопоставления.
Пример данных таблицы сопоставления «1»: «Один» «24»: «Двадцать четыре»
Я хотел бы объединить ключи во вложенном json с таблицей сопоставления и получить запрос, который выводит значения вместо ключей. Любые предложения о том, как я могу сделать это динамическое соединение с ключами?
я не совсем уверен, что правильно понял ваше намерение, но следующее может дать вам направление:
let T1 = datatable(d:dynamic)
[
dynamic({ "one":"OneValue", "four": "FourValue", "prop":{"1":"stringA", "24":"stringBlah"}}),
dynamic({ "one":"OneValue", "four": "FourValue", "prop":{"3":"stringB", "24":"stringBlahBlah"}})
]
;
let T2 = datatable(i:int, s:string)
[
1, "One",
24, "TwentyFour",
3, "Three"
]
;
let map = toscalar(
T2
| summarize make_bag(pack(tostring(i), s))
)
;
T1
| project prop = d.prop
| mv-apply prop on
(
extend key = tostring(bag_keys(prop)[0])
| project p = pack(tostring(map[key]), prop[tostring(key)])
| summarize result = make_bag(p)
)
это возвращает:
|result |
|----------------------------------------------------|
|{"One": "stringA", "TwentyFour": "stringBlah"} |
|{"Three": "stringB", "TwentyFour": "stringBlahBlah"}|