org.json.JSONException:在字符输入结束 [英] org.json.JSONException: End of input at character
本文介绍了org.json.JSONException:在字符输入结束的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
当我试图让一个没有对象JSON,它工作正常。但是当我尝试去得到一个具有对象它越来越错误JSON。
你有什么想法?
保护无效doInBackground(字符串... PARAMS){ 字符串URL =http://xxx.xxx.xxx.xxx/adchara1/;
JSONArray数据= NULL; 尝试{
的JSONObject的JSONObject =新的JSONObject(结果); MyArrList =新的ArrayList<&HashMap的LT;弦乐,对象>>();
HashMap的<弦乐,对象>地图;
数据= jsonObject.getJSONArray(国家);
数据=新JSONArray(getJSONUrl(URL));
的for(int i = 0; I< data.length();我++){
JSONObject的C = data.getJSONObject(I)
地图=新的HashMap<弦乐,对象>(); //缩略图获取ImageBitmap到对象
map.put(照片(字符串)c.getString(照片));
map.put(ImageThumBitmap(位图)loadBitmap(c.getString(照片))); //全(对于查看弹出)
map.put(帧,(字符串)c.getString(帧)); MyArrList.add(地图);
} }赶上(JSONException E){
// TODO自动生成catch块
e.printStackTrace();
} 返回null;
}
错误
十一月12日至26日:51:10.352:W / System.err的(23284):org.json.JSONException:输入结束在字符0
11月12日至26日:51:10.368:W / System.err的(23284):在org.json.JSONTokener.syntaxError(JSONTokener.java:450)
11月12日至26日:51:10.368:W / System.err的(23284):在org.json.JSONTokener.nextValue(JSONTokener.java:97)
11月12日至26日:51:10.368:W / System.err的(23284):在org.json.JSONObject<&初始化GT;(JSONObject.java:154)
11月12日至26日:51:10.368:W / System.err的(23284):在org.json.JSONObject<&初始化GT;(JSONObject.java:171)
11月12日至26日:51:10.376:W / System.err的(23284):在com.example.gridview.MainActivity $ DownloadJSONFileAsync.doInBackground(MainActivity.java:180)
11月12日至26日:51:10.376:W / System.err的(23284):在com.example.gridview.MainActivity $ DownloadJSONFileAsync.doInBackground(MainActivity.java:1)
11月12日至26日:51:10.376:W / System.err的(23284):在android.os.AsyncTask $ 2.call(AsyncTask.java:287)
11月12日至26日:51:10.376:W / System.err的(23284):在java.util.concurrent.FutureTask中$ Sync.innerRun(FutureTask.java:305)
11月12日至26日:51:10.376:W / System.err的(23284):在java.util.concurrent.FutureTask.run(FutureTask.java:137)
11月12日至26日:51:10.376:W / System.err的(23284):在android.os.AsyncTask $ SerialExecutor $ 1.run(AsyncTask.java:230)
11月12日至26日:51:10.376:W / System.err的(23284):在java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
11月12日至26日:51:10.376:W / System.err的(23284):在java.util.concurrent.ThreadPoolExecutor中的$ Worker.run(ThreadPoolExecutor.java:569)
11月12日至26日:51:10.376:W / System.err的(23284):在java.lang.Thread.run(Thread.java:856)
11月12日至26日:51:10.399:D / libEGL(23284):加载/vendor/lib/egl/libEGL_POWERVR_SGX540_120.so
11月12日至26日:51:10.423:D / libEGL(23284):加载/vendor/lib/egl/libGLESv1_CM_POWERVR_SGX540_120.so
11月12日至26日:51:10.430:D / libEGL(23284):加载/vendor/lib/egl/libGLESv2_POWERVR_SGX540_120.so
11月12日至26日:51:10.516:D / OpenGLRenderer(23284):启用调试模式0
11月12日至26日:51:10.735:D / AndroidRuntime(23284):关闭VM
11月12日至26日:51:10.735:W / dalvikvm(23284):主题ID = 1:螺纹未捕获的异常退出(组= 0x4158f300)
11月12日至26日:51:10.735:E / AndroidRuntime(23284):致命异常:主要
11月12日至26日:51:10.735:E / AndroidRuntime(23284):显示java.lang.NullPointerException
11月12日至26日:51:10.735:E / AndroidRuntime(23284):在com.example.gridview.MainActivity $ ImageAdapter.getCount(MainActivity.java:122)
11月12日至26日:51:10.735:E / AndroidRuntime(23284):在android.widget.GridView.setAdapter(GridView.java:182)
11月12日至26日:51:10.735:E / AndroidRuntime(23284):在com.example.gridview.MainActivity.ShowAllContent(MainActivity.java:91)
11月12日至26日:51:10.735:E / AndroidRuntime(23284):在com.example.gridview.MainActivity $ DownloadJSONFileAsync.onPostExecute(MainActivity.java:209)
11月12日至26日:51:10.735:E / AndroidRuntime(23284):在com.example.gridview.MainActivity $ DownloadJSONFileAsync.onPostExecute(MainActivity.java:1)
11月12日至26日:51:10.735:E / AndroidRuntime(23284):在android.os.AsyncTask.finish(AsyncTask.java:631)
11月12日至26日:51:10.735:E / AndroidRuntime(23284):在android.os.AsyncTask.access $ 600(AsyncTask.java:177)
11月12日至26日:51:10.735:E / AndroidRuntime(23284):在android.os.AsyncTask $ InternalHandler.handleMessage(AsyncTask.java:644)
11月12日至26日:51:10.735:E / AndroidRuntime(23284):在android.os.Handler.dispatchMessage(Handler.java:99)
11月12日至26日:51:10.735:E / AndroidRuntime(23284):在android.os.Looper.loop(Looper.java:137)
11月12日至26日:51:10.735:E / AndroidRuntime(23284):在android.app.ActivityThread.main(ActivityThread.java:4931)
11月12日至26日:51:10.735:E / AndroidRuntime(23284):在java.lang.reflect.Method.invokeNative(本机方法)
11月12日至26日:51:10.735:E / AndroidRuntime(23284):在java.lang.reflect.Method.invoke(Method.java:511)
11月12日至26日:51:10.735:E / AndroidRuntime(23284):在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:791)
11月12日至26日:51:10.735:E / AndroidRuntime(23284):在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:558)
11月12日至26日:51:10.735:E / AndroidRuntime(23284):在dalvik.system.NativeStart.main(本机方法)
11月12日至26日:51:12.509:I /流程(23284):发送信号。 PID:23284 SIG:9
解决方案
修改
的JSONObject的JSONObject =新的JSONObject(结果);
到
结果= getJSONUrl(URL); //<<从服务器获取JSON字符串
的JSONObject的JSONObject =新的JSONObject(结果);
在 DownloadJSONFileAsync
的 doInBackground
方法监守目前你没有做任何职位从服务器刚开JSON数据试图解析空字符串josn
when I try to get json that doesn't have object, it works fine. but when I try go get json that has an object it's getting error.
Have you got any idea?
protected Void doInBackground(String... params) {
String url = "http://xxx.xxx.xxx.xxx/adchara1/";
JSONArray data = null;
try {
JSONObject jsonObject = new JSONObject(result);
MyArrList = new ArrayList<HashMap<String, Object>>();
HashMap<String, Object> map;
data = jsonObject.getJSONArray("countries");
data = new JSONArray(getJSONUrl(url));
for (int i = 0; i < data.length(); i++) {
JSONObject c = data.getJSONObject(i);
map = new HashMap<String, Object>();
// Thumbnail Get ImageBitmap To Object
map.put("photo", (String) c.getString("photo"));
map.put("ImageThumBitmap",(Bitmap) loadBitmap(c.getString("photo")));
// Full (for View Popup)
map.put("frame", (String) c.getString("frame"));
MyArrList.add(map);
}
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
error
12-26 11:51:10.352: W/System.err(23284): org.json.JSONException: End of input at character 0 of
12-26 11:51:10.368: W/System.err(23284): at org.json.JSONTokener.syntaxError(JSONTokener.java:450)
12-26 11:51:10.368: W/System.err(23284): at org.json.JSONTokener.nextValue(JSONTokener.java:97)
12-26 11:51:10.368: W/System.err(23284): at org.json.JSONObject.<init>(JSONObject.java:154)
12-26 11:51:10.368: W/System.err(23284): at org.json.JSONObject.<init>(JSONObject.java:171)
12-26 11:51:10.376: W/System.err(23284): at com.example.gridview.MainActivity$DownloadJSONFileAsync.doInBackground(MainActivity.java:180)
12-26 11:51:10.376: W/System.err(23284): at com.example.gridview.MainActivity$DownloadJSONFileAsync.doInBackground(MainActivity.java:1)
12-26 11:51:10.376: W/System.err(23284): at android.os.AsyncTask$2.call(AsyncTask.java:287)
12-26 11:51:10.376: W/System.err(23284): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
12-26 11:51:10.376: W/System.err(23284): at java.util.concurrent.FutureTask.run(FutureTask.java:137)
12-26 11:51:10.376: W/System.err(23284): at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
12-26 11:51:10.376: W/System.err(23284): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
12-26 11:51:10.376: W/System.err(23284): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
12-26 11:51:10.376: W/System.err(23284): at java.lang.Thread.run(Thread.java:856)
12-26 11:51:10.399: D/libEGL(23284): loaded /vendor/lib/egl/libEGL_POWERVR_SGX540_120.so
12-26 11:51:10.423: D/libEGL(23284): loaded /vendor/lib/egl/libGLESv1_CM_POWERVR_SGX540_120.so
12-26 11:51:10.430: D/libEGL(23284): loaded /vendor/lib/egl/libGLESv2_POWERVR_SGX540_120.so
12-26 11:51:10.516: D/OpenGLRenderer(23284): Enabling debug mode 0
12-26 11:51:10.735: D/AndroidRuntime(23284): Shutting down VM
12-26 11:51:10.735: W/dalvikvm(23284): threadid=1: thread exiting with uncaught exception (group=0x4158f300)
12-26 11:51:10.735: E/AndroidRuntime(23284): FATAL EXCEPTION: main
12-26 11:51:10.735: E/AndroidRuntime(23284): java.lang.NullPointerException
12-26 11:51:10.735: E/AndroidRuntime(23284): at com.example.gridview.MainActivity$ImageAdapter.getCount(MainActivity.java:122)
12-26 11:51:10.735: E/AndroidRuntime(23284): at android.widget.GridView.setAdapter(GridView.java:182)
12-26 11:51:10.735: E/AndroidRuntime(23284): at com.example.gridview.MainActivity.ShowAllContent(MainActivity.java:91)
12-26 11:51:10.735: E/AndroidRuntime(23284): at com.example.gridview.MainActivity$DownloadJSONFileAsync.onPostExecute(MainActivity.java:209)
12-26 11:51:10.735: E/AndroidRuntime(23284): at com.example.gridview.MainActivity$DownloadJSONFileAsync.onPostExecute(MainActivity.java:1)
12-26 11:51:10.735: E/AndroidRuntime(23284): at android.os.AsyncTask.finish(AsyncTask.java:631)
12-26 11:51:10.735: E/AndroidRuntime(23284): at android.os.AsyncTask.access$600(AsyncTask.java:177)
12-26 11:51:10.735: E/AndroidRuntime(23284): at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:644)
12-26 11:51:10.735: E/AndroidRuntime(23284): at android.os.Handler.dispatchMessage(Handler.java:99)
12-26 11:51:10.735: E/AndroidRuntime(23284): at android.os.Looper.loop(Looper.java:137)
12-26 11:51:10.735: E/AndroidRuntime(23284): at android.app.ActivityThread.main(ActivityThread.java:4931)
12-26 11:51:10.735: E/AndroidRuntime(23284): at java.lang.reflect.Method.invokeNative(Native Method)
12-26 11:51:10.735: E/AndroidRuntime(23284): at java.lang.reflect.Method.invoke(Method.java:511)
12-26 11:51:10.735: E/AndroidRuntime(23284): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:791)
12-26 11:51:10.735: E/AndroidRuntime(23284): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:558)
12-26 11:51:10.735: E/AndroidRuntime(23284): at dalvik.system.NativeStart.main(Native Method)
12-26 11:51:12.509: I/Process(23284): Sending signal. PID: 23284 SIG: 9
解决方案
Change
JSONObject jsonObject = new JSONObject(result);
to
result=getJSONUrl(url); //<< get json string from server
JSONObject jsonObject = new JSONObject(result);
inside doInBackground
method of DownloadJSONFileAsync
becuase currently you are not making any post for getting Json data from server and just trying to parse empty string to josn
这篇关于org.json.JSONException:在字符输入结束的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文