我正在尝试将双精度为(大小2)的数组添加到JSON对象。这基本上是位置信息(具有经度和纬度信息)。

代码如下

double latLong[] = {124.6682391, -17.8978304};
final BasicDBObject loc = new BasicDBObject();
loc.put("type","Point");
loc.put("coordinates", latLong);
jsonObject.put("location", loc);


当我尝试打印时添加之后,我得到以下输出。

"location" : { "type" : "Point" , "coordinates" : "[D@53e21fa6"}


不知道该怎么办。我期待

"location" : { "type" : "Point" , "coordinates" : [124.6682391, -17.8978304"]}


不知道为什么要对数组进行编码。有一种方法可以避免这种情况,因为我无法将编码后的信息插入数据库。

非常感谢您的帮助和时间

最佳答案

latlong[]是一个Array,但是latlong就像引用(long * latLong)一样,您将引用location放在json中,因此得到的是它的位置而不是值。您可以使用fastJson utils首先将latlong[]更改为jsonString。

10-08 01:13