Java 获得;分析数据org.json.JSONException时出错:输入结束于“0”字符处;关于redditapi
您好,我正在尝试使用这个端点www.reddit.com/reddits.json来显示android上的一些列表,我收到了这个错误,下面是我的代码 我的主要活动类上有此asynctask类:Java 获得;分析数据org.json.JSONException时出错:输入结束于“0”字符处;关于redditapi,java,android,json,reddit,Java,Android,Json,Reddit,您好,我正在尝试使用这个端点www.reddit.com/reddits.json来显示android上的一些列表,我收到了这个错误,下面是我的代码 我的主要活动类上有此asynctask类: private class AsyncListLoader extends AsyncTask<String, Integer, JSONObject>{ private JSONParser jsonParser = new JSONParser(); private st
private class AsyncListLoader extends AsyncTask<String, Integer, JSONObject>{
private JSONParser jsonParser = new JSONParser();
private static final String REDEEM_URL = "http://www.reddit.com/reddits.json";
private HashMap<String, String> param = new HashMap<>();
@Override
protected JSONObject doInBackground(String... params) {
JSONObject json = jsonParser.makeHttpRequest(REDEEM_URL, "GET", param);
if (json != null) {
Log.d("JSON result", json.toString());
return json;
}
else {
Log.d("JSON result", "is null");
}
return null;
}
@Override
protected void onPostExecute(JSONObject s) {
try {
if(!s.has("kind")){
Toast.makeText(MainActivity.this, "Something went wrong", Toast.LENGTH_LONG).show();
}
else {
JSONObject list = s.getJSONObject("data");
JSONArray childrens = list.getJSONArray("children");
for(int i = 0; i < childrens.length(); i++){
JSONObject o = childrens.getJSONObject(i).getJSONObject("data");
Feed f = new Feed(o.getString("icon_img"),o.getString("banner_img"),o.getString("display_name"));
MainActivity.this.adapter.add(f);
}
}
} catch (JSONException e){
e.printStackTrace();
}
}
}
我在web上测试了另一个json端点,它们正在工作。我不知道为什么会这样
编辑:
- 没有使用参数,因此url很好
- json是有效的,我在不同的网站上检查过
JSONException
=出现问题,在“
=just get”的字符0处输入结束,不知道如何对其进行json化。IMHO:conn.setDoOutput(false)代码>是罪魁祸首吗?我已删除并将其更改为conn.setDoOutput(true);而且什么也没发生@RC.use reformation,严肃地说。JSONException
=出了问题,在“
=刚得到”的字符0处输入结束,不知道如何将其json化。IMHO:conn.setDoOutput(false)代码>是罪魁祸首吗?我已删除并将其更改为conn.setDoOutput(true);什么也没发生@RC。认真地说,改型吧。
if(method.equals("GET")){
// request method is GET
if (sbParams.length() != 0) {
url += "?" + sbParams.toString();
}
try {
urlObj = new URL(url);
conn = (HttpURLConnection) urlObj.openConnection();
conn.setDoOutput(false);
conn.setRequestMethod("GET");
conn.setRequestProperty("Accept-Charset", charset);
conn.setConnectTimeout(15000);
conn.connect();
} catch (IOException e) {
e.printStackTrace();
}
}
try {
//Receive the response from the server
InputStream in = new BufferedInputStream(conn.getInputStream());
BufferedReader reader = new BufferedReader(new InputStreamReader(in));
result = new StringBuilder();
String line;
while ((line = reader.readLine()) != null) {
result.append(line);
}
Log.d("JSON Parser", "result: " + result.toString());
} catch (IOException e) {
e.printStackTrace();
}
conn.disconnect();
// try parse the string to a JSON object
try {
jObj = new JSONObject(result.toString());
} catch (JSONException e) {
Log.e("JSON Parser", "Error parsing data " + e.toString());
}
// return JSON Object
return jObj;