Android JSON错误需要帮助

Android JSON错误需要帮助,android,Android,上周,当我的web服务没有返回JSON字符串中类似的信息时,我在尝试完成活动时遇到了一个问题 09-02 00:25:55.466: D/JSON String(882): { 09-02 00:25:55.466: D/JSON String(882): "all" : { 09-02 00:25:55.466: D/JSON String(882): "count" : 0, 09-02 00:25:55.466: D/JSON String(882): "questions

上周,当我的web服务没有返回JSON字符串中类似的信息时,我在尝试完成活动时遇到了一个问题

09-02 00:25:55.466: D/JSON String(882): {
09-02 00:25:55.466: D/JSON String(882): "all" : {
09-02 00:25:55.466: D/JSON String(882):     "count" : 0,
09-02 00:25:55.466: D/JSON String(882):     "questions" : [     ]
09-02 00:25:55.466: D/JSON String(882):     }
09-02 00:25:55.466: D/JSON String(882): }
当它返回这个时,这是应该发生的

@Override
    protected void onPostExecute(String file_URL) {

        if(file_URL!=null && file_URL.equals("0")) {
            pDialog.dismiss();
            Toast.makeText(ListView.this, "No data found", Toast.LENGTH_SHORT).show();
            finish();
但它却执行了这个

if (pDialog != null && pDialog.isShowing()) 
    pDialog.dismiss();
ListAdapter adapter = new SimpleAdapter(getBaseContext(), questionList,
        R.layout.listelements,
        new String[] { TAG_QUESTION_SUBJECT }, new int[] {
        R.id.Subject,});

setListAdapter(adapter);
现在,当我的web服务将信息返回到我的JSON字符串时,它如下所示

08-30 00:36:07.917: D/JSON String(1891): {
08-30 00:36:07.917: D/JSON String(1891): "all" :    {
08-30 00:36:07.917: D/JSON String(1891):    "count" : 25,
08-30 00:36:07.917: D/JSON String(1891):    "questions" : [     {   
08-30 00:36:07.917: D/JSON String(1891):            "Id" : "20100728112033AAb4hTA",
08-30 00:36:07.917: D/JSON String(1891):            "Subject" : "What is the oldest a bitch can more or less safely breed?",
08-30 00:36:07.917: D/JSON String(1891):            "Content" : "Don't worry I'm not going to breed - both my bitches are getting neutered in the next year, as is my dog! Just that me and a friend were talking about it after talking to the man who gave me Misty (my border collie) who said she could still breed at 7 - I thought the oldest was 5?\n",
08-30 00:36:07.917: D/JSON String(1891):            "Date" : "2010-07-28 18:20:33",
08-30 00:36:07.917: D/JSON String(1891):            "Timestamp" : "1280341233",
08-30 00:36:07.917: D/JSON String(1891):            "Link" : "http://answers.yahoo.com/question/?qid=20100728112033AAb4hTA",
08-30 00:36:07.917: D/JSON String(1891):            "Type" : "Answered",
08-30 00:36:07.917: D/JSON String(1891):            "CategoryId" : 396546021,
08-30 00:36:07.917: D/JSON String(1891):            "CategoryName" : "Dogs",
08-30 00:36:07.917: D/JSON String(1891):            "UserId" : "cP16Ctgxaa",
08-30 00:36:07.917: D/JSON String(1891):            "UserNick" : "Kiko",
08-30 00:36:07.917: D/JSON String(1891):            "UserPhotoURL" : "http://l.yimg.com/dg/users/1t1USxJpxAAEBQOGZjBMW0-5Wp_EG.medium.jpg",
08-30 00:36:07.917: D/JSON String(1891):            "NumAnswers" : 8,
08-30 00:36:07.917: D/JSON String(1891):            "NumComments" : 0,
08-30 00:36:07.917: D/JSON String(1891):            "ChosenAnswer" : "You just \"imagined\" that ,dear...not \"thought\". & your imagination is WRONG.\r\n\r\n9 or even 10,for a healthy TOP-PRODUCING bitc-h.\r\n\r\n\r\n\r\n*&* bitches are SPAYED & dogs are CASTRATED......big scary correct ADULT words.",
08-30 00:36:07.917: D/JSON String(1891):            "ChosenAnswererId" : "clN6YITvaa",
08-30 00:36:07.917: D/JSON String(1891):            "ChosenAnswererNick" : "Debunker",
08-30 00:36:07.917: D/JSON String(1891):            "ChosenAnswerTimestamp" : "1280317077",
08-30 00:36:07.917: D/JSON String(1891):            "ChosenAnswerAwardTimestamp" : "1280835336"
08-30 00:36:07.917: D/JSON String(1891):        },      {
当它返回这个时,它执行这个

if (pDialog != null && pDialog.isShowing()) 
    pDialog.dismiss();
ListAdapter adapter = new SimpleAdapter(getBaseContext(), questionList,
        R.layout.listelements,
        new String[] { TAG_QUESTION_SUBJECT }, new int[] {
        R.id.Subject,});

setListAdapter(adapter);
就像人们想象的那样。现在,当我用
if(file|URL==null&&file|URL.equals(“0”){
替换行
if(file|URL==null | | file|URL.equals(“0”){
时,它执行
finish();
无论我的web服务是否返回信息。我处理这个问题已经有一段时间了,我真的需要比我知识更高的人来帮助我解决这个问题

编辑

我的应用程序运行的是安卓4.3,我的模拟器运行的是安卓4.2.2。这可能是我的应用程序出现有趣行为的原因吗?如果这会有任何影响,请留下评论

        protected String doInBackground(String... args) {   

            try {
                Intent in = getIntent();
                String searchTerm = in.getStringExtra("TAG_SEARCH");
                String query = URLEncoder.encode(searchTerm, "utf-8");
                String URL = "http://example.com";
                JSONParsser jParser = new JSONParsser();
                JSONObject json = jParser.readJSONFeed(URL);
                try {

                    JSONArray questions = json.getJSONObject("all").getJSONArray("questions");

                    for(int i = 0; i < questions.length(); i++) {
                        JSONObject question = questions.getJSONObject(i);


                    String Subject = question.getString(TAG_QUESTION_SUBJECT);
                    String ChosenAnswer = question.getString(TAG_QUESTION_CHOSENANSWER);
                    String Content = question.getString(TAG_QUESTION_CONTENT);

                               HashMap<String, String> map = new HashMap<String, String>();

                               map.put(TAG_QUESTION_SUBJECT, Subject);
                               map.put(TAG_QUESTION_CONTENT, Content);
                               map.put(TAG_QUESTION_CHOSENANSWER, ChosenAnswer);

                               questionList.add(map);

                    }


                    } catch (JSONException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            } catch (UnsupportedEncodingException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }

                    return TAG_QUESTION;       

        }

        @Override
        protected void onPostExecute(String file_URL) { 

            if(file_URL.equals("0")) { 
                pDialog.dismiss();
                Toast.makeText(ListView.this, "No data found", Toast.LENGTH_SHORT).show();
                finish();    

        }else{

                if (pDialog.isShowing()) pDialog.dismiss();
                ListAdapter adapter = new SimpleAdapter(getBaseContext(), questionList,
                        R.layout.listelements,
                        new String[] { TAG_QUESTION_SUBJECT }, new int[] {
                        R.id.Subject,});

                setListAdapter(adapter);
        }

    }

}
受保护的字符串doInBackground(字符串…args){
试一试{
Intent in=getIntent();
String searchTerm=in.getStringExtra(“标记搜索”);
字符串查询=URLEncoder.encode(搜索词,“utf-8”);
字符串URL=”http://example.com";
JSONPARSER jParser=新的JSONPARSER();
JSONObject json=jParser.readJSONFeed(URL);
试一试{
JSONArray questions=json.getJSONObject(“全部”).getJSONArray(“问题”);
对于(int i=0;i
你如何设置
文件\u URL
?你能为我详细说明一下吗:)lolor你需要我发布我的整个异步任务吗?我问这个问题是因为我相信我在
doInBackground
方法中返回了错误的值,我不知道返回什么值是的,问题可能是
doInBack的返回值ground
作为
file\u URL
传递到
onPostExecute
。好的,我将发布我的
doInBackGround
方法