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()