簡體   English   中英

JSONArray是空的

[英]JSONArray is empty

我從數據庫中讀取數據(只有最后一行,我在我的php文件中執行)我想要做的是分別使用每個字段的數據,但問題是JSONArray是空的我嘗試了很多方法它在不同的帖子中尋找它,但它總是空的。

這是我的代碼

public class MainActivity extends Activity {
    /** Called when the activity is first created. */

    JSONArray jArray = null;
    String result = null;
    InputStream is = null;
    StringBuilder sb=null;

    String ct_id;
    String ct_name;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
      //http post
        try{
            HttpClient httpclient = new DefaultHttpClient();

            HttpPost httppost= new HttpPost("http://xxx.php");


            httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
            HttpResponse response = httpclient.execute(httppost);
            HttpEntity entity = response.getEntity();
            is = entity.getContent();

         }catch(Exception e){
            Log.e("log_tag", "Error in http connection"+e.toString());
         }
      //convert response to string
        try{
              BufferedReader reader = new BufferedReader(new InputStreamReader(is,"iso-8859-1"),8);
               sb = new StringBuilder();


               String line=null;
               while ((line = reader.readLine()) != null) {
                              sb.append(line + "\n");
                }
                is.close();
                result=sb.toString();
                }catch(Exception e){
                      Log.e("log_tag", "Error converting result "+e.toString());
                }
        //paring data

        try{
              jArray = new JSONArray(result);
              JSONObject json_data=null;
              for(int i=0;i<jArray.length();i++){
                     json_data = jArray.getJSONObject(i);
                     ct_id=json_data.getString("fecha");
                     ct_name=json_data.getString("dia");
                 }
              }
              catch(JSONException e1){
                  Toast.makeText(getBaseContext(), "JSON is empty" ,Toast.LENGTH_LONG).show();
              } catch (ParseException e1) {
                    e1.printStackTrace();
            }


    }
}

它總是捕獲JSONException e1。

非常感謝everibody

檢查result返回字符串。 可能不僅有json結構(錯誤,警告等)。 JSON拼寫檢查器: http//jsonlint.com/

檢查json響應后; 更好地嘗試使用GSON,更方便;

        JsonParser jsonParser = new JsonParser();
        JsonArray jArray;
if ( jsonParser.parse(result).isJsonArray() ) {
    jArray = jsonParser.parse(result).getAsJsonArray();
} 
else { jArray = new JsonArray(); }

問題出在PHP文件中,JSON無法理解數據,這就是為什么它是空的,我改變了它,現在工作正常。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM