我正在尝试将双精度为(大小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。