我是Erlang的新手,当我尝试将二进制转换为字符串时,我遇到了badarg错误,如下所示。
Prefix = binary:bin_to_list(wh_json:get_ne_value(<<"prefix">>, Patterns)),
其中Patterns
是:
Pattern1--> {[{<<"prefix">>,<<>>},{<<"callerId">>,<<"1001">>},{<<"cid_regex">>,<<"^\\+?1001">>}]}
Pattern2--> {[{<<"prefix">>,<<"12">>},{<<"callerId">>,<<"1001">>},{<<"cid_regex">>,<<"^\\+?1001">>}]}
对于Pattern2
它工作正常,但对于Pattern1
我收到此错误,因为前缀在Pattern1
中没有任何值。
那么,任何人都可以告诉我如何处理前缀值可以是null
或任何值的情况,它应该适用于这两种情况。
答案 0 :(得分:5)
在致电wh_json:get_ne_value
之前,检查undefined
是否返回binary:bin_to_list
:
Prefix =
case wh_json:get_ne_value(<<"prefix">>, Patterns) of
undefined ->
prefix_not_found;
BinaryPrefix when is_binary(BinaryPrefix) ->
binary:bin_to_list(BinaryPrefix)
end