我正在使用一个队列服务,它似乎只允许我发送一个字符串作为消息(有点不认为那是对的但是却无法证明其他情况),但我需要3个不同的数据项处理我的工作(int,double和int [])。所以我采用所有三种数据类型并使用Arrays.toString
将它们转换为字符串。
我的问题是,一旦我的工作进程得到了我需要将它们转换回来的消息。工作人员看到了这一点:[0, 43.0, [0, 59, 16]]
但我不确定如何最有效地转换它。我现在正在做的方法是删除第一个和最后一个字符,然后执行String[] temp = queue_string.split(",");
将其作为列表返回。
我很好,如果这种方式是唯一的方式,但我想知道是否有更清洁的方式?就像Arrays.toString
有点像String.toArray
(这不存在,我已经尝试过了: - )
答案 0 :(得分:4)
我认为最好使用像JSON这样的标准作为进程间传输数据的格式。数据可以很容易地从字符串封送到本机数据类型,然后再用Java格式化。
Gson gson = new Gson();
int[] sub = { 0, 59, 16 };
Object[] values = { 0, 43.0, sub };
String output = gson.toJson(values); // => [0, 43.0,[0,59,16]]
Object[] deserialized = gson.fromJson(output, Object[].class);
for ( Object obj : deserialized ) {
// => 0.0, 43.0, [0.0, 59.0, 16.0]
}