我是一名新程序员,我正在尝试用Json构建一个应用程序。
我创建了Json解析器类,在我的主要活动中,我有以下代码: String url =“http://echo.jsontest.com/key/value/one/two”;
JSONObject json = jParser.getJSONFromUrl(url);
one = json.getString(gridArray.get(lekeres).getTitle()); //一个人有好的价值“两个”
这很有效。 BUT
如果我将网址更改为:https://api.myjson.com/bins/3f8d2 这与jsontest中的代码完全相同,没有“两个”。我搜索了几个小时,但我不知道为什么会这样。我什么都没做,只是改变了网址。比赛是一样的......
答案 0 :(得分:1)
因为我不知道你的解析器是怎么回事。我做了一个快速测试,可以使用以下代码正常读取这两个链接:
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://
。