用Java读取多个atributes CouchDB
我试图在用Java读取多个atributes CouchDB,java,couchdb,Java,Couchdb,我试图在couchDB中阅读: "coordinates": { "type": "Point", "coordinates": [ -117.166272, 32.714312 ] }, 我使用的是CouchDB4j,通常我可以通过以下方式读取普通属性: mydocument.containsKey("text") 但我不能将其用于“坐标”,因为它有多个属性(类型和坐标) 它显示: "Excepti
couchDB
中阅读:
"coordinates": {
"type": "Point",
"coordinates": [
-117.166272,
32.714312
]
},
我使用的是CouchDB4j
,通常我可以通过以下方式读取普通属性:
mydocument.containsKey("text")
但我不能将其用于“坐标”,因为它有多个属性(类型和坐标)
它显示:
"Exception in thread "main" java.lang.ClassCastException:
net.sf.json.JSONObject cannot be cast to java.lang.String"
我如何解决它,读取坐标并获取点和坐标?我刚刚尝试使用json lib的2.4版,它对我很有效。我使用groovy是因为使用groovy进行测试更快:
// I had to manually download the jar using:
// curl http://central.maven.org/maven2/net/sf/json-lib/json-lib/2.4/json-lib-2.4-jdk15.jar > ~/.groovy/grapes/net.sf.json-lib/json-lib/jars/json-lib-2.4.jar
@Grapes(
@Grab(group='net.sf.json-lib', module='json-lib', version='2.4')
)
import net.sf.json.*
import net.sf.json.groovy.*
builder = new net.sf.json.groovy.JsonGroovyBuilder()
def s = '''{
"_id": "12345",
"coordinates": {
"type": "Point",
"coordinates": [
-117.166272,
32.714312
]
},
"foo": "bar"
}'''
def jsonSlurper = new JsonSlurper()
def doc = jsonSlurper.parseText(s)
assert doc.containsKey("coordinates") == true
assert doc.get("coordinates").toString() ==
'{"type":"Point","coordinates":[-117.166275,32.714314]}'
assert doc.get("coordinates")['coordinates'][0] == -117.166275