Android 我在解析JSON对象时出错。我在服务器上的代码在asp.net中,它只返回两个值。下面是我的java代码
这是我的主要活动:-Android 我在解析JSON对象时出错。我在服务器上的代码在asp.net中,它只返回两个值。下面是我的java代码,android,json,parsing,Android,Json,Parsing,这是我的主要活动:- package com.example.shafqatsk.android_php_sql; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import android.os.AsyncTask; import android.os.Bundle; import android.app.Activity; import android.vi
package com.example.shafqatsk.android_php_sql;
import org.json.JSONArray; import org.json.JSONException; import
org.json.JSONObject; import android.os.AsyncTask; import
android.os.Bundle; import android.app.Activity; import
android.view.Menu; import android.widget.TextView;
public class MainActivity extends Activity {
JSONObject jobj = null;
ServiceHandler sv = new ServiceHandler();
TextView itemName, itemColor, itemPrice;
String ab;
JSONArray jsonArray;
JSONObject jsonObject;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
itemName = (TextView) findViewById(R.id.textView1);
itemColor = (TextView) findViewById(R.id.textView2);
//start background processing
new RetreiveData().execute();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
class RetreiveData extends AsyncTask<String,String,String>{
@Override
protected String doInBackground(String... arg0) {
// TODO Auto-generated method stub
jobj = sv.makeHttpRequest("http://192.168.1.253/StockService.asmx/GetItemData");
try {
//jsonArray = jobj.getJSONArray(arg0[0]);
ab = jobj.getString("ItemName");
ab += jobj.getString("ItemId");
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return ab;
}
protected void onPostExecute(String ab){
itemName.append(ab);
}
} }
Logcat中的错误:-
05-19 02:10:42.336 9552-9589/com.example.shafqatsk.android_php_sql E/AndroidRuntime: FATAL EXCEPTION: AsyncTask #1
java.lang.RuntimeException: An error occured while executing doInBackground()
at android.os.AsyncTask$3.done(AsyncTask.java:299)
at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:352)
at java.util.concurrent.FutureTask.setException(FutureTask.java:219)
at java.util.concurrent.FutureTask.run(FutureTask.java:239)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
at java.lang.Thread.run(Thread.java:841)
Caused by: java.lang.NullPointerException
at com.example.shafqatsk.android_php_sql.MainActivity$RetreiveData.doInBackground(MainActivity.java:48)
at com.example.shafqatsk.android_php_sql.MainActivity$RetreiveData.doInBackground(MainActivity.java:39)
at android.os.AsyncTask$2.call(AsyncTask.java:287)
at java.util.concurrent.FutureTask.run(FutureTask.java:234)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
at java.lang.Thread.run(Thread.java:841)
05-19 02:10:42.352 9552-9552/com.example.shafqatsk.android_php_sql E/OpenGLRenderer: Getting MAX_TEXTURE_SIZE from GradienCache
05-19 02:10:42.356 9552-9552/com.example.shafqatsk.android_php_sql E/OpenGLRenderer: Getting MAX_TEXTURE_SIZE from Caches::initConstraints()
我想问更多的细节,但我没有得到允许,所以我写在这里 可能您的
jobj
为空
System.out.println(“结果:+sb.toString())的输出是什么代码>?我想问更多细节,但我没有权限,所以我写在这里
可能您的jobj
为空
System.out.println(“结果:+sb.toString())的输出是什么代码>?如果需要,您在请求中传递的是什么参数?如果您的web服务类型是post
您可以使用loopj库,而不是为web调用编写代码,所有异常都在此库中处理。您只需要使用JSON键解析数据表单响应,您可以在站点上获得指南。我希望这对你有帮助 如果需要,您在请求中传递什么参数?如果您的web服务类型是post
您可以使用loopj库,而不是为web调用编写代码,所有异常都在此库中处理。您只需要使用JSON键解析数据表单响应,您可以在站点上获得指南。我希望这对你有帮助 我在你的评论中看到,请求是post类型,但是post数据在哪里?JSON的响应是什么?你能分享一下吗,这样我们就可以更好地了解可能的错误。不管怎样,伙计们,我找到了解决方案。谢谢。我在你的评论中看到,请求是post类型的,但是post数据在哪里?JSON的响应是什么?你能分享一下吗,这样我们就可以更好地了解可能的错误。不管怎样,伙计们,我找到了解决方案。谢谢。如果你有关于OP的问题,最好的地方就是评论。答案应该尽可能完整地回答问题。如果你有关于OP的问题,最好在评论中回答。答案应尽可能完整地回答问题。郝琪,谢谢你的回答。实际上,我传递的是不正确的url。我得到的输出是一个html错误404页面。再次感谢先生。郝琪,谢谢您的回复。实际上,我传递的是不正确的url。我得到的输出是一个html错误404页面。再次谢谢,先生。
05-19 02:10:42.336 9552-9589/com.example.shafqatsk.android_php_sql E/AndroidRuntime: FATAL EXCEPTION: AsyncTask #1
java.lang.RuntimeException: An error occured while executing doInBackground()
at android.os.AsyncTask$3.done(AsyncTask.java:299)
at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:352)
at java.util.concurrent.FutureTask.setException(FutureTask.java:219)
at java.util.concurrent.FutureTask.run(FutureTask.java:239)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
at java.lang.Thread.run(Thread.java:841)
Caused by: java.lang.NullPointerException
at com.example.shafqatsk.android_php_sql.MainActivity$RetreiveData.doInBackground(MainActivity.java:48)
at com.example.shafqatsk.android_php_sql.MainActivity$RetreiveData.doInBackground(MainActivity.java:39)
at android.os.AsyncTask$2.call(AsyncTask.java:287)
at java.util.concurrent.FutureTask.run(FutureTask.java:234)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
at java.lang.Thread.run(Thread.java:841)
05-19 02:10:42.352 9552-9552/com.example.shafqatsk.android_php_sql E/OpenGLRenderer: Getting MAX_TEXTURE_SIZE from GradienCache
05-19 02:10:42.356 9552-9552/com.example.shafqatsk.android_php_sql E/OpenGLRenderer: Getting MAX_TEXTURE_SIZE from Caches::initConstraints()