2015-03-04 3 views
-1

Я хочу, чтобы этот вид Json Parsing, который представлен ниже, и извлекает данные от Json Parsing Data. Но он дает мне NullPointer Exception всякий раз, когда выполняйте мой код (сделайте в фоновом процессе), который приведен ниже. Как решить эту проблему? Как получить JSON Response из этого ниже URL?Получите ответ JSON в андроиде?

данные = {"2015-03-06": [{"date": "2015-03-06", "sign": "0"}]};

Мой код,

@Override 
    urlGetData= "view-source:XXXXXXXX?date=YYYY-MM-DD&sign=2XXXX"; 
      protected Void doInBackground(Void... arg0) { 
         dataList = new ArrayList<HashMap<String, String>>(); 
         // Retrieve JSON Objects from the given URL address 
         jsonobject = JSONFunctions.getJSONfromURL(urlGetData); 
         try { 


          jsonarray = jsonobject.getJSONArray("YYYY-MM-DD"); 

          for (int i = 0; i < jsonarray.length(); i++) { 

           HashMap<String, String> map = new HashMap<String, String>(); 
           jsonobject = jsonarray.getJSONObject(i); 
           // Retrive JSON Objects 

           strRating = String.valueOf(jsonobject 
             .getString("rating")); 
           dataList.add(map); 
          } 
         } catch (JSONException e) { 
          Log.e("Error", e.getMessage()); 
          e.printStackTrace(); 
         } 

         return null; 
        } 

Но это дает мне Null Pointer Exception на jsonarray = jsonobject.getJSONArray("YYYY-MM-DD").

Как получить ответ данных = {"2015-03-06":[{"date":"2015-03-06","sign":"0"}]};?

Спасибо.

+0

дата в качестве ключа? но почему? – Blackbelt

+0

@Blackbelt ya Его дать мне серверную сторону – Reena

+0

@Blackbelt это текущая дата, которая может быть получена, но я не могу этого типа данных JSON Parsing. – Reena

ответ

0

попробуйте использовать

jsonarray = jsonobject.getJSONArray("2015-03-06"); 

вместо

jsonarray = jsonobject.getJSONArray("YYYY-MM-DD"); 

, потому что ключ jsonArray является "2015-03-06" не "YYYY-MM-DD" Упование это поможет.

+0

Я также пытаюсь использовать такие данные, но не преобразовывать их в Valid Json Parsing, которые предоставляют в URL-адресах = {"2015-03-06": [{"date": "2015-03-06", "знак": "0"}]}; – Reena

0

, если она всегда правильная дата, то вы можете разобрать его, как показано ниже: -

DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); 
Date date = new Date(); 
jsonarray = jsonobject.getJSONArray(dateFormat.format(date).toString()); 

затем получить нужные значения из этого массива, но я по-прежнему говорят, имея дату как ключ в ответ JSON является очень плохая идея.

0

Здесь вы используете "ГГГГ-ММ-ДД". Который не вернет текущую дату. Это всегда «ГГГГ-ММ-ДД». Итак, вы пытаетесь прочитать json с ключевым именем «YYYY-MM-DD». Именно по этой причине вы получаете нулевой указатель.

Если это так, вы можете получить текущую дату и время, используя другие функции.

Calendar c = Calendar.getInstance(); 
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); 
String strDate = sdf.format(c.getTime()); 

И следующее, что вы можете передать этой дате в качестве ключа.

ex. jsonarray = jsonobject.getJSONArray(strDate);

+0

ok для предложения – Reena

+0

сделал у попробовать? Это работает? – Amsheer

Смежные вопросы