我需要从Android向Algolia发送数据,发送的数据应为JSONObject格式(导入org.json.JSONObject)
Algolia 的数据应采用这种格式
"_geoloc": {
"lat": 40.639751,
"lng": -73.778925
}
所以在Android中,我将代码设置如下
val jsonObject = JSONObject()
val locHashMap = hashMapOf(
"lat" to coordinate.latitude,
"lng" to coordinate.longitude
)
jsonObject.put("_geoloc",locHashMap)
index.addObjectAsync(jsonObject)
但不幸的是,我得到了这个错误:
java.lang.NoSuchMethodError: No virtual method put(Ljava/lang/String;Ljava/util/Map;)Lorg/json/JSONObject; in class Lorg/json/JSONObject; or its super classes (declaration of 'org.json.JSONObject' appears in /system/framework/core-libart.jar)
在这行代码
jsonObject.put("_geoloc",locHashMap)
所以我应该怎么做才能以JSONObject格式发送哈希图数据?
解决方案如下:
我可能是错的,但是请尝试这种方式。
错误提示,没有方法将Map放置为JSON值,但是您可以放置一个String(JSON对象作为字符串),这样很好,因此YourHasMap.toString()完成了
在代码java中:
jsonObject.put(“_ geoloc”, locHashMap.toString())
index.addObjectAsync(jsonObject)