如何用java读取mongodb中保存的erlang元组
结果是 我需要用java阅读它如何用java读取mongodb中保存的erlang元组,java,mongodb,erlang,Java,Mongodb,Erlang,结果是 我需要用java阅读它 A= term_to_binary({100,200,123,45}) , io:format("~p~n",[A]), mongo:save(?IP_ADDRESS, {'_id', 1, ip,A}). 结果是 {100,63,123,45} 错误通过将术语_指定为二进制,您正在尝试将erlang术语转换为二进制。应使用二进制_-to-u项将其转换,以返回结果。将事物信息存储在mong
A= term_to_binary({100,200,123,45}) ,
io:format("~p~n",[A]),
mongo:save(?IP_ADDRESS, {'_id', 1, ip,A}).
结果是
{100,63,123,45}
错误通过将术语_指定为二进制,您正在尝试将erlang术语转换为二进制。应使用二进制_-to-u项将其转换,以返回结果。将事物信息存储在mongodb中,您将尝试在这里进行不同的转换 因此你的结果是错误的
t[0]=(byte)131;
try
{
OtpInputStream ois = null;
ois = new OtpInputStream(t);
OtpErlangTuple IP = (OtpErlangTuple)OtpErlangObject.decode(ois);
System.out.println(IP);}
简而言之,java中的“{a,b,c,d}”与erlang中的术语_to_二进制({a,b,c,d})不同
这里将二进制erlang术语转换为字符串。如果要保存,必须先保存到字符串,然后保存到二进制,然后再检索它。当您
toString()
对象或getBytes()
数据时,这可能是一个编码问题。退房
t[0]=(byte)131;
try
{
OtpInputStream ois = null;
ois = new OtpInputStream(t);
OtpErlangTuple IP = (OtpErlangTuple)OtpErlangObject.decode(ois);
System.out.println(IP);}
1> A= term_to_binary({100,200,123,45}).
<<131,104,4,97,100,97,200,97,123,97,45>>
2> binary_to_term(A).
{100,200,123,45}
String u = a.get("ip").toString();