我希望有人可以帮助我。
我有一个将JSON返回给iOS应用程序的Django服务器。在Django服务器上,我们正在使用
return HttpResponse(json.dumps(session_dict),mime_type)
将JSON返回给客户端(通过Wireshark)
2f中 {“session”:“bcb493fb21ae8fcd9152e1924b3e5d9a”} 0
此响应在某种程度上对iOS应用程序有效,可以由iOS JSON客户端库进行解析。这对我来说看起来不像Json有效,所以我很惊讶它有效。
但是,如果我在Android中使用以下内容,则会收到错误消息:
java.lang.String类型的值会话无法转换为JSONObject。
jsonObjSend.put("username", strUserName);
jsonObjSend.put("password", strPassword);
Add a nested JSONObject (e.g. for header information)
JSONObject header = new JSONObject();
header.put("deviceType","Android"); // Device type
header.put("deviceVersion","2.0"); // Device OS version
header.put("language", "es-es");
jsonObjSend.put("header", header);
// Output the JSON object we're sending to Logcat:
Log.i(TAG, jsonObjSend.toString(2));
} catch (JSONException e) {
e.printStackTrace();
}
try {
// Send the HttpPostRequest and receive a JSONObject in return
JSONObject jsonObjRecv = HttpClient.SendHttpPost(URL, jsonObjSend);
String sessionId = jsonObjRecv.getString("session");
有什么建议吗?
谢谢,
格雷格
答案 0 :(得分:0)
您的HttpClient.sendHttpPost方法是否返回JSONObject?不确定它是否会自动将HTTP POST中的响应主体解析为JSONObject。如果没有,那么您必须使用JSONTokener或使用像Gson这样的库。
答案 1 :(得分:0)
User user =new User("tom","12");
Gson gson =new Gson();
json=gson.toJson(user);