我有两个网址。
如果我通过我的android活动运行第一个,那么结果加载到我的列表中没有问题。 但是,如果我运行第二个URL,那么我就会收到此错误。
05-30 16:20:30.473: ERROR/JSON Parser(1740): Error parsing data org.json.JSONException: Value Invalid of type java.lang.String cannot be converted to JSONObject
05-30 16:20:30.633: ERROR/AndroidRuntime(1740): FATAL EXCEPTION: AsyncTask #1
java.lang.RuntimeException: An error occured while executing doInBackground()
at android.os.AsyncTask$3.done(AsyncTask.java:278)
at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:273)
at java.util.concurrent.FutureTask.setException(FutureTask.java:124)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:307)
at java.util.concurrent.FutureTask.run(FutureTask.java:137)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:208)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
at java.lang.Thread.run(Thread.java:856)
Caused by: java.lang.NullPointerException
at com.supremosolutions.wimp.AroundMeParking$LoadInbox.doInBackground(AroundMeParking.java:162)
at com.supremosolutions.wimp.AroundMeParking$LoadInbox.doInBackground(AroundMeParking.java:138)
at android.os.AsyncTask$2.call(AsyncTask.java:264)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
... 5 more
我通过json验证器(例如http://jsonlint.com/)运行这两个网址,并且都验证了。
代码似乎打破jsonParser.makeHttpRequest
:
protected String doInBackground(String... args) {
// Building Parameters
List<NameValuePair> params = new ArrayList<NameValuePair>();
JSONObject json = jsonParser.makeHttpRequest(callableUrl, "GET", params);
// Check your log cat for JSON response
Log.d("JSON FOR LOGCAT: ", json.toString());
有时我可以在Logcat中看到JSON FOR LOGCAT字符串,它看起来像这个http://pastebin.com/6CWBAyys(尽管仍然会崩溃)但有时字符串甚至不会进入logcat。
这里有什么问题,我该如何解决?
答案 0 :(得分:0)
我附加参数的jsonParser类。我已经添加了基本网址+参数,因此发送的网址无效。 而不是像https://wimp.supremosolutions.com/api/v1/spot/?format=json&latitude=45.200375&longitude=9.992465000000001
那样发送我的网址我必须像https://wimp.supremosolutions.com/api/v1/spot/一样发送它,但是然后添加NameValuePair参数以传递到我的jsonParser类。
// Building Parameters
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("format", "json"));
params.add(new BasicNameValuePair("format", "json"));
params.add(new BasicNameValuePair("format", "json"));
JSONObject json = jsonParser.makeHttpRequest(URL, "GET", params);
正如Ken Y-N和Alex所说,这个错误是由无效的网址引起的。如果你得到这个DOUBLE,请检查你如何创建你的URL并确切地看到发送的内容