Я хочу разобрать строку в Elixir. Очевидно, он двоичный. Я хочу получить значение left_operand
, это «2», но я не уверен, как это сделать. Потому что это как строка, список, кортеж.Строка parse в Elixir
iex(13)> str = "[{\"start_usage\":\"0\",\"left_operand\":\"2\"}]"
iex(15)> is_binary str
true
Строка представляет собой формат JSON, полученный из MySQL. Я хочу использовать модуль devinus/poison для его анализа, но я не уверен, как иметь дело с первой и последней двойными кавычками ("
).
Кажется, что мне просто нужно кортеж часть так что я могу сделать это, как
iex(5)> s = Poison.Parser.parse!(~s({\"start_usage\":\"0\",\"left_operand\":\"2\"}))
%{"left_operand" => "2", "start_usage" => "0"}
iex(6)> s["left_operand"]
"2"
Но я не знаю, как получить кортеж часть.
Заранее спасибо
EDIT:
Я думаю, что я понял, как сделать это мой путь.
iex> iex(4)> [s] = Poison.Parser.parse!("[{\"start_usage\":\"0\",\"left_operand\":\"2\"}]")
[%{"left_operand" => "2", "start_usage" => "0"}]
iex(5)> s
%{"left_operand" => "2", "start_usage" => "0"}
iex(6)> s["left_operand"]
"2"
Я не знаю, почему это работает, я не прошел ~s
префикс