2015-09-15 38 views
0
{"futsal_id":"59", 
    "description":[{ 
    "futsal_id":"59", 
    "futsal_desc":"This is great futsal"}], 

    "features":[{"futsal_id":"59","futsal_feat":"free 4 bottles of water"}], 
    "dimension":null, 
    "no_of_futsal":null, 
    "opening_hrs":null, 
    "price_weekdays_price1":[{ 
      "futsal_id":"59", 
      "price_id":"1", 
      "start_time":"6am", 
      "end_time":"10am", 
      "price":"1000"}], 
    "price_weekdays_price2":[{ 
      "futsal_id":"59", 
      "price_id":"2", 
      "start_time":"10am", 
      "end_time":"3pm", 
      "price":"1200"}], 
    "price_weekdays_price3":[{ 
      "futsal_id":"59", 
      "price_id":"3", 
      "start_time":"3pm", 
      "end_time":"9pm", 
      "price":"1300"}], 
    "price_weekend_price1":null, 
      "price_weekend_price2":null, 
      "price_weekend_price3":null, 
    "images":[], 
    "image_count":0, 
    "news":null} 

這是來自PHP的My JsonResponse。 由於這些響應中存在空數據,我無法在android studio中獲得任何響應。 如果不存在空數據,則response.getString()具有所有這些數據,但response.getString由於空數據而沒有響應。 可能是什麼問題?No JsonResponse即使單個數據爲空時也可獲得

class ShowResult extends AsyncTask<Void, Void, String[]> { 

    @Override 
    protected void onPreExecute() { 
     super.onPreExecute(); 
     pd.show(); 
    } 

    @Override 
    protected void onPostExecute(String[] aVoid) { 
     super.onPostExecute(aVoid); 
     pd.cancel(); 
     txt.setText(result[0]); 
     } 

    @Override 
    protected String[] doInBackground(Void... params) { 
     try { 
      Log.d("sssssssssssssss", "sadf"); 

      URL url = new URL("http://futsalgroove.s4generation.com/app/android_c/show_details/"); 
      HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection(); 
      urlConnection.setDoOutput(true); 
      urlConnection.setRequestMethod("POST"); 

      String urlParameters = "id=" + bundle.getString("id"); 
      //sending the parameter using DataOutputStream 
      DataOutputStream wr = new DataOutputStream(urlConnection.getOutputStream()); 
      wr.writeBytes(urlParameters); 
      wr.flush(); 
      wr.close(); 

      //Reading the data or response from the PHP file 
      BufferedReader in = new BufferedReader(new InputStreamReader(urlConnection.getInputStream())); 

      Log.d("sssssssssssssss", "iii" + in); 
      String inputLine; 
      StringBuffer response = new StringBuffer(); 

      while ((inputLine = in.readLine()) != null) { 
       response.append(inputLine); 
       Log.d("Detail Outputss", inputLine); 
      } 
      in.close(); 
      //Using the JasonObject from php 
      Log.d("Detail Outputsss", "" + response.toString()); 

      JSONObject json = new JSONObject(response.toString()); 

      JSONArray description = json.getJSONArray("description"); 
      JSONObject descObj = description.getJSONObject(0); 

      result[0] = descObj.getString("futsal_desc"); 
      Log.d("DetailOut","" + result[0]); 
    } 

     } catch (MalformedURLException e) { 
      e.printStackTrace(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } catch (JSONException e) { 

     } 
     return result; 
    } 
} 
+0

使用Newtonsoft.Json.Linq請添加一些更多的細節,並使其更具可讀性 – alamin

+0

請假出來的android格式的JSON代碼。在瀏覽器中加載url並檢查json。有一個json解析器擴展有幫助。如果沒有,您可以使用開發者控制檯。 – e4c5

+0

Log.d(「Detail Outputsss」,「」+ response.toString());它打印什麼......? –

回答

0

替換代碼

JSONObject json = new JSONObject(response.toString()); 
JSONArray description = json.getJSONArray("description"); 
JSONObject descObj = description.getJSONObject(0); 
result[0] = descObj.getString("futsal_desc"); 
Log.d("DetailOut","" + result[0]); 

JObject json = JObject.Parse(response.toString()); 
JArray description = (JArray)json["description"]; 
JObject descObj = (JObject)description[0]; 
result[0] = descObj["futsal_desc"].ToString(); 
Log.d("DetailOut","" + result[0]); 

可能是這會工作。對於JObject頂部

using Newtonsoft.Json.Linq; 
相關問題