我正在使用Volley和GSON,我需要将一个对象作为参数发送给我的电话。
我就是这样做的对象:
JSONObject params = new JSONObject();
Gson gson = new Gson();
String json = gson.toJson(route);
params.put("route", json);
然后我调用我的Volley JsonObjectRequest函数。
问题是params看起来像这样:
{"route":"{\"bounds\":{\"northeast\":{\"lat\":52.3777194,\"lng\":4.924666999999999},\"southwest\":{\"lat\":52.36881109999999,\"lng\":4.9011479}},\"copyrights\":\"Map data ©2014 Google\", etc...}"
正如您所看到的,不是将其作为对象发送,而是将其作为字符串发送,这就是为什么我得到"在{}之前(在对象开始之前)。参数应该看起来像:
{"route":{\"bounds\":{\"northeast\":{\"lat\":52.3777194,\"lng\":4.924666999999999},\"southwest\":{\"lat\":52.36881109999999,\"lng\":4.9011479}},\"copyrights\":\"Map data ©2014 Google\", etc...}
所以没有"之前{喜欢这个:
{"route":{myObject}
我在这做错了什么?
答案 0 :(得分:1)
您不想混用JSONObject
和GSON
。
这是两个不同的库。
使用gson.toJsonTree
获取元素,然后使用JsonObject
代替JSONObject
:
JsonObject params = new JsonObject();
Gson gson = new Gson();
params.add("route", gson.toJsonTree(route));