0

我希望有人可以帮助我。

我有一个将 JSON 返回到 iOS 应用程序的 Django 服务器。在 Django 服务器上,我们正在使用

return HttpResponse(json.dumps(session_dict),mime_type)

将 JSON 作为(通过 Wireshark)返回给客户端

2f {“会话”:“bcb493fb21ae8fcd9152e1924b3e5d9a”} 0

这个响应对能够被 iOS JSON 客户端库解析的 iOS 应用程序是有效的。这对我来说看起来不像是有效的 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");

有什么建议么?

谢谢,

格雷格

4

2 回答 2

0

google 的 GSON 可能是更好的选择,您可以直接将实例转换为 json 字符串,例如

User user =new User("tom","12");
Gson gson =new Gson();
json=gson.toJson(user);
于 2012-04-30T06:03:43.947 回答
0

您的 HttpClient.sendHttpPost 方法是否返回 JSONObject?不确定它是否会自动将来自 HTTP POST 的响应正文解析为 JSONObject。如果没有,那么您将不得不使用JSONTokener或使用像 Gson 这样的库。

于 2012-04-30T05:41:56.840 回答