解析请求返回null JSONArray

时间:2014-03-02 02:30:30

标签: java android sql json parse-platform

我使用parse.com作为Android应用程序的服务器。我试图查询解析数据库并获取一个JSON数组,但不幸的是,对该数组的调用返回null。以下是我的应用程序上的代码。

ParseUser currentUser = ParseUser.getCurrentUser();
JSONArray myArray = (JSONArray) currentUser.getJSONArray("links");
System.out.println(currentUser.get("username"));
String sample = myArray.toString();
System.out.println(sample);

以下是我的数据库解析时的示例行。

objectId String | username String | password String | links Array

AD5HkKpJzB           foug              (hidden)       ["like","this"] 

上面的代码获取了对当前用户的引用。我能够检索其他数据,比如“用户名”。不幸的是,“links”字段返回null。任何帮助,将不胜感激。感谢。

注意,上面的代码崩溃,因为myArray为null。

为了澄清,ParseUser是一个属于parse.com的类。

以下是我的日志报告。

03-01 21:48:50.687: I/Process(22225): Sending signal. PID: 22225 SIG: 9
03-01 21:49:48.729: I/System.out(22395): foug
03-01 21:49:48.729: D/AndroidRuntime(22395): Shutting down VM
03-01 21:49:48.729: W/dalvikvm(22395): threadid=1: thread exiting with uncaught exception (group=0x414a2930)
03-01 21:49:48.729: E/AndroidRuntime(22395): FATAL EXCEPTION: main
03-01 21:49:48.729: E/AndroidRuntime(22395): java.lang.RuntimeException: Unable to resume activity {com.harris.chain/com.harris.chain.MainActivity}: java.lang.NullPointerException
03-01 21:49:48.729: E/AndroidRuntime(22395):    at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2870)
03-01 21:49:48.729: E/AndroidRuntime(22395):    at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:2899)
03-01 21:49:48.729: E/AndroidRuntime(22395):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2363)
03-01 21:49:48.729: E/AndroidRuntime(22395):    at android.app.ActivityThread.access$600(ActivityThread.java:153)
03-01 21:49:48.729: E/AndroidRuntime(22395):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1247)
03-01 21:49:48.729: E/AndroidRuntime(22395):    at android.os.Handler.dispatchMessage(Handler.java:99)
03-01 21:49:48.729: E/AndroidRuntime(22395):    at android.os.Looper.loop(Looper.java:137)
03-01 21:49:48.729: E/AndroidRuntime(22395):    at android.app.ActivityThread.main(ActivityThread.java:5227)
03-01 21:49:48.729: E/AndroidRuntime(22395):    at java.lang.reflect.Method.invokeNative(Native Method)
03-01 21:49:48.729: E/AndroidRuntime(22395):    at java.lang.reflect.Method.invoke(Method.java:511)
03-01 21:49:48.729: E/AndroidRuntime(22395):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:795)
03-01 21:49:48.729: E/AndroidRuntime(22395):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:562)
03-01 21:49:48.729: E/AndroidRuntime(22395):    at dalvik.system.NativeStart.main(Native Method)
03-01 21:49:48.729: E/AndroidRuntime(22395): Caused by: java.lang.NullPointerException
03-01 21:49:48.729: E/AndroidRuntime(22395):    at com.harris.chain.MainActivity.getLatestLinks(MainActivity.java:36)
03-01 21:49:48.729: E/AndroidRuntime(22395):    at com.harris.chain.MainActivity.onResume(MainActivity.java:27)
03-01 21:49:48.729: E/AndroidRuntime(22395):    at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1185)
03-01 21:49:48.729: E/AndroidRuntime(22395):    at android.app.Activity.performResume(Activity.java:5182)
03-01 21:49:48.729: E/AndroidRuntime(22395):    at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2860)
03-01 21:49:48.729: E/AndroidRuntime(22395):    ... 12 more

如您所见,我能够从数据库中成功检索用户名“foug”。但是JSONArray请求仍然返回null ./

1 个答案:

答案 0 :(得分:0)

对我来说,将数据直接硬编码到Parse的数据库中无法实际保存数据,或者不允许我从应用程序访问数据。一旦我使用该应用程序将数据放入Parse的数据库,我就能够检索数据。