我是一名新程序员,我正在尝试使用Json构建应用程序。

我创建了Json解析器类,在我的主要活动中,我有以下代码:
 字符串url =“ http://echo.jsontest.com/key/value/one/two”;

                        JSONObject json = jParser.getJSONFromUrl(url);


一个= json.getString(gridArray.get(lekeres).getTitle()); //一个具有良好的价值“两个”

这很好。但

如果我将网址更改为:https://api.myjson.com/bins/3f8d2
 与jsontest中的代码完全相同,其中一个没有“ two”。我搜索了几个小时,但我不知道为什么会这样。除了更改URL,我什么也没做。比赛是一样的...

最佳答案

由于我不知道您的解析器如何。我进行了快速测试,可以使用以下代码正常读取两个链接:


        try {
            //url = new URL(""http://echo.jsontest.com/key/value/one/two2");
            url = new URL("https://api.myjson.com/bins/3f8d2");
            InputStream is = url.openStream();
            JSONObject json = null;
            BufferedReader rd = new BufferedReader(new InputStreamReader(is, Charset.forName("UTF-8")));
            StringBuilder sb = new StringBuilder();
            int cp;
            while ((cp = rd.read()) != -1) {
                sb.append((char) cp);
            }
            String jsonText = sb.toString();
            json = new JSONObject(jsonText);

        } catch (MalformedURLException e) {
            e.printStackTrace();
        } catch (JSONException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }



这是更多示例:http://en.proft.me/2013/12/5/how-parse-json-java/
您可以类似地使您的getJSONFromUrl。否则,像其他建议一样,尝试不使用https://

08-27 20:59