json and json array android


json and json array android

这是我的json数据字符串http://falerooz.ir/output_fal.php

 try {
        JSONArray tasks = new JSONArray(G.json_file);
        for (int i = 0; i < tasks.length(); i++) {
            JSONObject object = tasks.getJSONObject(i);
            String id = object.getString("id");
            String farvardin = object.getString("farvardin");
            String ordibehesht = object.getString("ordibehesht");
            String khordad = object.getString("khordad");
            String tir = object.getString("tir");
            String mordad = object.getString("mordad");
            String shahrivar = object.getString("shahrivar");
            String mehr = object.getString("mehr");
            String aban = object.getString("aban");
            String azar = object.getString("azar");
            String dey = object.getString("dey");
            String bahman = object.getString("bahman");
            String esfand = object.getString("esfand");
            String startdate = object.getString("startdate");
        }
    }
    catch (JSONException e) {
        e.printStackTrace();
    }

my Error:

08-24 17:44:51.810: W/System.err(1310): org.json.JSONException: End of input at character 0 of 
08-24 17:44:51.810: W/System.err(1310):     at org.json.JSONTokener.syntaxError(JSONTokener.java:450)
08-24 17:44:51.810: W/System.err(1310):     at org.json.JSONTokener.nextValue(JSONTokener.java:97)
08-24 17:44:51.810: W/System.err(1310):     at org.json.JSONArray.<init>(JSONArray.java:87)
08-24 17:44:51.810: W/System.err(1310):     at org.json.JSONArray.<init>(JSONArray.java:103)
08-24 17:44:51.810: W/System.err(1310):     at com.aradmobile.MainActivity.fal(MainActivity.java:416)
08-24 17:44:51.810: W/System.err(1310):     at com.aradmobile.MainActivity.chek_update(MainActivity.java:923)
08-24 17:44:51.810: W/System.err(1310):     at com.aradmobile.MainActivity.onCreate(MainActivity.java:206)
08-24 17:44:51.810: W/System.err(1310):     at android.app.Activity.performCreate(Activity.java:5104)
08-24 17:44:51.810: W/System.err(1310):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
08-24 17:44:51.810: W/System.err(1310):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144)
08-24 17:44:51.810: W/System.err(1310):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
08-24 17:44:51.810: W/System.err(1310):     at android.app.ActivityThread.access$600(ActivityThread.java:141)
08-24 17:44:51.810: W/System.err(1310):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
08-24 17:44:51.810: W/System.err(1310):     at android.os.Handler.dispatchMessage(Handler.java:99)
08-24 17:44:51.810: W/System.err(1310):     at android.os.Looper.loop(Looper.java:137)
08-24 17:44:51.810: W/System.err(1310):     at android.app.ActivityThread.main(ActivityThread.java:5041)
08-24 17:44:51.810: W/System.err(1310):     at java.lang.reflect.Method.invokeNative(Native Method)
08-24 17:44:51.810: W/System.err(1310):     at java.lang.reflect.Method.invoke(Method.java:511)
08-24 17:44:51.810: W/System.err(1310):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
08-24 17:44:51.810: W/System.err(1310):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
08-24 17:44:51.810: W/System.err(1310):     at dalvik.system.NativeStart.main(Native Method)
08-24 17:44:51.814: W/System.err(1310): org.json.JSONException: End of input at character 0 of 
08-24 17:44:51.814: W/System.err(1310):     at org.json.JSONTokener.syntaxError(JSONTokener.java:450)
08-24 17:44:51.814: W/System.err(1310):     at org.json.JSONTokener.nextValue(JSONTokener.java:97)
08-24 17:44:51.814: W/System.err(1310):     at org.json.JSONArray.<init>(JSONArray.java:87)
08-24 17:44:51.814: W/System.err(1310):     at org.json.JSONArray.<init>(JSONArray.java:103)
08-24 17:44:51.814: W/System.err(1310):     at com.aradmobile.MainActivity.fal(MainActivity.java:416)
08-24 17:44:51.814: W/System.err(1310):     at com.aradmobile.MainActivity.onCreate(MainActivity.java:217)
08-24 17:44:51.814: W/System.err(1310):     at android.app.Activity.performCreate(Activity.java:5104)
08-24 17:44:51.814: W/System.err(1310):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
08-24 17:44:51.814: W/System.err(1310):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144)
08-24 17:44:51.814: W/System.err(1310):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
08-24 17:44:51.814: W/System.err(1310):     at android.app.ActivityThread.access$600(ActivityThread.java:141)
08-24 17:44:51.814: W/System.err(1310):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
08-24 17:44:51.814: W/System.err(1310):     at android.os.Handler.dispatchMessage(Handler.java:99)
08-24 17:44:51.814: W/System.err(1310):     at android.os.Looper.loop(Looper.java:137)
08-24 17:44:51.814: W/System.err(1310):     at android.app.ActivityThread.main(ActivityThread.java:5041)
08-24 17:44:51.814: W/System.err(1310):     at java.lang.reflect.Method.invokeNative(Native Method)
08-24 17:44:51.814: W/System.err(1310):     at java.lang.reflect.Method.invoke(Method.java:511)
08-24 17:44:51.814: W/System.err(1310):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
08-24 17:44:51.814: W/System.err(1310):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
08-24 17:44:51.814: W/System.err(1310):     at dalvik.system.NativeStart.main(Native Method)

异常指示错误发生在"JSONArray tasks = new JSONArray(g.j json_file);"

请检查您用来保存从互联网下载的JSON的文件内容。

我只是复制/粘贴你的json字符串到我的代码,并使用字符串对象来生成JSONArray。它的工作原理。但是,当我想打印JSON时,我发现JSON中可能有一些非字符值并中断输出。

" mordad":"' r ' n ' r ' nتصورشماازبهشت،ايناستكههمهچيزبهآراميپيشرودوتاآنجاكهميتوانيددستبهانجامكارينزنيد。تنهاامروز،كميتنبلشدهايدونميتوانيدازانرژيخودبهرهجستهوخودرانشاندهيد،مگراينكهواقعاًنيازبهاينكارباشد。اگراحساسخستگيميكنيد،ممكناستزودبهرختخواببرويدتافرداصبحباروحيهايبهتروشا�"

所以,我猜是:
1. 文本中有一些格式错误的字符。
2. 当您将字符串保存到文件中时,它被截断了。
3.最后,您尝试使用从截断的文件中恢复的String来创建JSONArray。这会导致错误。

我的建议是:
1. 检查文件内容/长度,确保文件与网络相同
2. 或者您可以尝试直接使用从网络下载的内容,如果解决了问题,您可以定位/缩小问题区域