我是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
任何值的情况,它应该适用于这两个条件.
在调用之前检查是否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