Erlang - ** exception error: no match of right hand side value
Erlang - ** exception error: no match of right hand side value
我对 json 格式化字符串的模式匹配有问题。
在这里我添加了一个简短的版本(只是将 long json string 更改为 "{\"jsondata\"}"
所以我有这个成功的模式匹配:
> MyData2={ok,{{"HTTP/1.1",200,"OK"},
[{"connection","Keep-Alive"},
{"date","Thu, 10 Sep 2015 12:03:49 GMT"},
{"server","Apache/2.4.7 (Ubuntu)"},
{"vary","X-Auth-Token"},
{"content-length","1171"},
{"content-type","application/json"},
{"x-openstack-request-id",
"req-31b4efc1-2af4-4130-b7a8-01d94b456096"},
{"keep-alive","timeout=5, max=100"}],
"{\"jsondata\"}"}}.
之后我 运行 以下内容:
> {ok,{{"HTTP/1.1",ReturnCode, State},B,J}}=MyData2.
不幸的是我明白了
如果我将 "{\"jsondata\"}"
更改为 "jsondata"
最后一个模式匹配工作正常
我不知道如何提取 json 并在 J 中获取 "{\"jsondata\"}"
我会 appriciate 任何想法
** 异常错误:右侧值不匹配
您的模式匹配操作完美无缺。我认为问题是,变量 ReturnCode
、State
、B
或 J
之一已经绑定。
让我们假设变量 J
已经绑定到一个值,而其他变量没有。根据这个值,模式匹配操作
{ok,{{"HTTP/1.1",ReturnCode, State},B,J}} = MyData2.
要么成功,要么失败。
案例 1:J
已经绑定到 "{\"jsondata\"}"
您的模式匹配将成功,未绑定变量(ReturnCode
、State
和 B
)的值将根据 [=21= 的模式设置].
案例 2:J
已经绑定到 "{jsondata}"
右侧的 J
变量与左侧 MyData2
的模式不匹配。因此执行失败并出现异常。
如果您忘记使用 f(Variable)
清除变量,shell 也会发生这种情况。
我对 json 格式化字符串的模式匹配有问题。 在这里我添加了一个简短的版本(只是将 long json string 更改为 "{\"jsondata\"}" 所以我有这个成功的模式匹配:
> MyData2={ok,{{"HTTP/1.1",200,"OK"},
[{"connection","Keep-Alive"},
{"date","Thu, 10 Sep 2015 12:03:49 GMT"},
{"server","Apache/2.4.7 (Ubuntu)"},
{"vary","X-Auth-Token"},
{"content-length","1171"},
{"content-type","application/json"},
{"x-openstack-request-id",
"req-31b4efc1-2af4-4130-b7a8-01d94b456096"},
{"keep-alive","timeout=5, max=100"}],
"{\"jsondata\"}"}}.
之后我 运行 以下内容:
> {ok,{{"HTTP/1.1",ReturnCode, State},B,J}}=MyData2.
不幸的是我明白了
如果我将 "{\"jsondata\"}"
更改为 "jsondata"
最后一个模式匹配工作正常
我不知道如何提取 json 并在 J 中获取 "{\"jsondata\"}"
我会 appriciate 任何想法
** 异常错误:右侧值不匹配
您的模式匹配操作完美无缺。我认为问题是,变量 ReturnCode
、State
、B
或 J
之一已经绑定。
让我们假设变量 J
已经绑定到一个值,而其他变量没有。根据这个值,模式匹配操作
{ok,{{"HTTP/1.1",ReturnCode, State},B,J}} = MyData2.
要么成功,要么失败。
案例 1:J
已经绑定到 "{\"jsondata\"}"
您的模式匹配将成功,未绑定变量(ReturnCode
、State
和 B
)的值将根据 [=21= 的模式设置].
案例 2:J
已经绑定到 "{jsondata}"
右侧的 J
变量与左侧 MyData2
的模式不匹配。因此执行失败并出现异常。
如果您忘记使用 f(Variable)
清除变量,shell 也会发生这种情况。