Json 解析工作不正常但适用于 jsontest
Json Parse not working properly but works on jsontest
我是一名新程序员,我正在尝试使用 Json 构建应用程序。
我创建了 Json 解析器 class 并且在我的主 activity 中有以下代码:
字符串 url = "http://echo.jsontest.com/key/value/one/two";
JSONObject json = jParser.getJSONFromUrl(url);
one = json.getString(gridArray.get(lekeres).getTitle()); // 一个有很好的价值 "two"
效果很好。但是
如果我将 url 更改为:https://api.myjson.com/bins/3f8d2
这与 jsontest 中的代码完全相同,一个没有 "two" 。我搜索了几个小时,但我不知道为什么会这样。除了更改 url,我什么也没做。比赛是一样的...
因为我不知道你的解析器怎么样。我进行了快速测试,可以使用以下代码正常读取 link:
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://
.
我是一名新程序员,我正在尝试使用 Json 构建应用程序。
我创建了 Json 解析器 class 并且在我的主 activity 中有以下代码: 字符串 url = "http://echo.jsontest.com/key/value/one/two";
JSONObject json = jParser.getJSONFromUrl(url);
one = json.getString(gridArray.get(lekeres).getTitle()); // 一个有很好的价值 "two"
效果很好。但是
如果我将 url 更改为:https://api.myjson.com/bins/3f8d2 这与 jsontest 中的代码完全相同,一个没有 "two" 。我搜索了几个小时,但我不知道为什么会这样。除了更改 url,我什么也没做。比赛是一样的...
因为我不知道你的解析器怎么样。我进行了快速测试,可以使用以下代码正常读取 link:
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://
.