javascript代码实例教程-org.json.JSONException: End of input at character 0 of

发布时间:2019-05-13 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了javascript代码实例教程-org.json.JSONException: End of input at character 0 of脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
小宝典致力于为广大程序猿(媛)提供高品质的代码服务,请大家多多光顾小站,小宝典在此谢过。

今天写代码时,还遇到了如下的错误消息:

04-08 21:55:22.792: W/System.err(10665): org.json.JSONException: End of input at character 0 of
04-08 21:55:22.802: W/System.err(10665): at org.json.JSONTokener.syntaxError(JSONTokener.java:446)
04-08 21:55:22.802: W/System.err(10665): at org.json.JSONTokener.nextValue(JSONTokener.java:93)
04-08 21:55:22.802: W/System.err(10665): at org.json.JSONArray.<inIT>(JSONArray.java:87)
04-08 21:55:22.812: W/System.err(10665): at org.json.JSONArray.<init>(JSONArray.java:103)
04-08 21:55:22.812: W/System.err(10665): at cn.jbit.service.GetNews.GetJSON(GetNews.java:65)
04-08 21:55:22.812: W/System.err(10665): at cn.jbit.service.GetNews.getNewsListByJSON(GetNews.java:48)
04-08 21:55:22.812: W/System.err(10665): at cn.jbit.news.NewsActivity.fillListView(NewsActivity.java:29)
04-08 21:55:22.812: W/System.err(10665): at cn.jbit.news.NewsActivity.onCreate(NewsActivity.java:24)
04-08 21:55:22.812: W/System.err(10665): at andROId.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
04-08 21:55:22.812: W/System.err(10665): at android.app.ActivityThread.PErforMLaunchActivity(ActivityThread.java:1611)
04-08 21:55:22.812: W/System.err(10665): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
04-08 21:55:22.812: W/System.err(10665): at android.app.ActivityThread.access$1500(ActivityThread.java:117)
04-08 21:55:22.822: W/System.err(10665): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
04-08 21:55:22.822: W/System.err(10665): at android.os.Handler.dispatchMessage(Handler.java:99)
04-08 21:55:22.822: W/System.err(10665): at android.os.Looper.loop(Looper.java:123)
04-08 21:55:22.822: W/System.err(10665): at android.app.ActivityThread.main(ActivityThread.java:3683)
04-08 21:55:22.832: W/System.err(10665): at java.lang.reflect.Method.invokeNative(Native Method)
04-08 21:55:22.832: W/System.err(10665): at java.lang.reflect.Method.invoke(Method.java:507)
04-08 21:55:22.832: W/System.err(10665): at com.android.internal.os.Zygoteinit$MethodAndargsCaller.run(ZygoteInit.java:839)
04-08 21:55:22.832: W/System.err(10665): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
04-08 21:55:22.832: W/System.err(10665): at dalvik.system.NativeStart.main(Native Method)

我们先直译一下错误消息的意思:在输入端字符0结尾处抛出了JSONException;

后然,发现了错误的原因

/**
*&nbsp;   读取 流数据
* @param input
* @return
* @throws Exception
*/
public static byte[] read(InputStream input) throws Exception {
ByteArrayOutputStream out =new ByteArrayOutputStream();
byte[] data =new byte[1024];
int len =0;
while((len=input.read(data))!=-1){
out.write(data, 0, 0);//原本应该是out.write(data, 0, len);,但当时用了快捷键,打成了0,就抛出了如上的异常消息
}
out.close();
return out.toByteArray();
}


看了上面的代码,我想你也知道我抛出这个异常的原因了吧;再看看下面的代码:

/***
*  从服务器 返回JSON 数据  并在这里进行解析
* @param input
* @return
* @throws Exception
*/
PRivate static List<News> GetJSON(InputStream input) throws Exception {
List<News> list =new ArrayList<News>();
byte[] data =StreamTool.read(input);
String json =new String (data);  // 从 服务器 传过来的数据   产用的编码就是  utf-8   这里就不写了
JSONArray array =new JSONArray(json);   
for(int i =0 ; i<array.length();i++){
JSONObject jsonObject =array.getJSONObject(i); 
News news =new News();
news.setNid(jsonObject.getInt("id"));
news.setNauthor(jsonObject.getString("author"));
news.setNtitle(jsonObject.getString("title"));
list.add(news);
}
return list;
}


我当时调用了第一个方法read(InputStream input)方法,因为不小心打错了代码,该方法返回的值肯定是什么字节,那么在解析JSON 肯定是在索引为0位置的字符处就出现异常!

 

觉得可用,就经常来吧! 脚本宝典 欢迎评论哦! js脚本,巧夺天工,精雕玉琢。小宝典献丑了!

脚本宝典总结

以上是脚本宝典为你收集整理的javascript代码实例教程-org.json.JSONException: End of input at character 0 of全部内容,希望文章能够帮你解决javascript代码实例教程-org.json.JSONException: End of input at character 0 of所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。