org.json.JSONException:在字符输入结束 [英] org.json.JSONException: End of input at character

查看:103
本文介绍了org.json.JSONException:在字符输入结束的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

当我试图让一个没有对象JSON,它工作正常。但是当我尝试去得到一个具有对象它越来越错误JSON。

你有什么想法?

 保护无效doInBackground(字符串... PARAMS){        字符串URL =htt​​p://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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆