在android中解码JSON

在android中解码JSON,android,json,Android,Json,我在从JSON获取解码字符串时遇到问题。我已连接到web服务并获得JSON:{“pdf:“jvberi0xljqkjeljz9mknyawig9iakpdwkl0zpbhrlciavrmxhdgve… 这是字符串,但用Base64编码。我尝试使用以下方法对其进行解码: JSONObject jsonMap = new JSONObject(out.toString()); String json =jsonMap.getJSONOb

我在从JSON获取解码字符串时遇到问题。我已连接到web服务并获得JSON:
{“pdf:“jvberi0xljqkjeljz9mknyawig9iakpdwkl0zpbhrlciavrmxhdgve…
这是字符串,但用Base64编码。我尝试使用以下方法对其进行解码:

                JSONObject jsonMap = new JSONObject(out.toString());
                String json =jsonMap.getJSONObject("pdf").toString();
                byte temp[];
                Base64 b = null;

                temp = b.decode(json.getBytes(), 0);
但这个解决方案行不通,有什么想法吗? 这是错误日志:

11-12 14:36:30.257: W/System.err(12374): org.json.JSONException: Value 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
11-12 14:36:30.257: W/System.err(12374):    at org.json.JSON.typeMismatch(JSON.java:100)
11-12 14:36:30.257: W/System.err(12374):    at org.json.JSONObject.getJSONObject(JSONObject.java:573)
11-12 14:36:30.257: W/System.err(12374):    at pdf2app.models.Magazine.<init>(Magazine.java:74)
11-12 14:36:30.257: W/System.err(12374):    at pdf2app.activities.DownloaderService.parsePdfs(DownloaderService.java:490)
11-12 14:36:30.257: W/System.err(12374):    at pdf2app.activities.DownloaderService.getPDFs(DownloaderService.java:416)
11-12 14:36:30.257: W/System.err(12374):    at pdf2app.activities.DownloaderService.onHandleIntent(DownloaderService.java:183)
11-12 14:36:30.257: W/System.err(12374):    at android.app.IntentService$ServiceHandler.handleMessage(IntentService.java:65)
11-12 14:36:30.257: W/System.err(12374):    at android.os.Handler.dispatchMessage(Handler.java:99)
11-12 14:36:30.257: W/System.err(12374):    at android.os.Looper.loop(Looper.java:137)

看起来问题就在这一行:
String json=jsonMap.getJSONObject(“pdf”).toString();
,因为在调试器中,在这一行之后,我得到了错误

,而不是
jsonMap.getJSONObject(“pdf”)
您应该使用
jsonMap.getString(“pdf”)
,而不是
jsonMap.getJSONObject(“pdf”)
您应该使用
jsonMap.getString(“pdf”)

看起来解析是错误的

            JSONObject jsonMap = new JSONObject(out.toString());
            String json =jsonMap.getString("pdf");

然后进行base64解码。

看起来解析错误

            JSONObject jsonMap = new JSONObject(out.toString());
            String json =jsonMap.getString("pdf");

然后进行base64解码。

但是这个解决方案不起作用。
不是一个清晰的信息。错误消息会更好。另外,如果这是您的文本,那么它不是JSON字符串。JSON需要
[]
{}
作为包装器。正如您所看到的,它在
out.toString()中有一个包装器“{}”
此外,他已经发布了足够多的错误日志信息。根据其中一个答案,发生的JSONException似乎表明,您检索的值的类型与您指定的类型不同。
但此解决方案不起作用。
不是一个明确的信息。错误消息会更好。Also、 如果这是您的文本,那么这不是JSON字符串。JSON需要将
[]
{}
作为包装器。正如您所看到的,它在其
out.toString()中有一个包装器“{}”
此外,他已经发布了足够多的错误日志信息。根据其中一个答案,似乎发生的JSONException表明您检索的值的类型与您指定的类型不同。