2015-10-01 3 views
0

Это мой java-файл, где я пытаюсь позвонить Json, но я не получаю никаких данных. Также я не получаю никаких ошибок, поэтому я не мог найти, где проблема.Не получать данные от JSON Call Android

Вот мой код и Json выглядит следующим образом:

[ 
    { 
    "title": "Quest", 
    "description": "Description Quest", 
    "district": "District Quest"; 
    } 
] 

И КОД:

public class Quests extends Fragment { 

    // Log tag 
    private static final String TAG = Quests.class.getSimpleName(); 

    // Quest Json url 
    private static final String url = "http://my-ip-adress-of-computer/project/quests.txt"; 
    private ProgressDialog pDialog; 
    private List<com.dusandimitrijevic.model.Quests> questList = new ArrayList<com.dusandimitrijevic.model.Quests>(); 
    private ListView listView; 
    private QuestListAdapter adapter; 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
          Bundle savedInstanceState) { 
     View rootView = inflater.inflate(R.layout.quests, container, false); 

     pDialog = new ProgressDialog(getActivity()); 
     // Showing progress dialog before making http request 
     pDialog.setMessage("Loading..."); 
     pDialog.setCancelable(false); 
     pDialog.show(); 

     listView = (ListView) rootView.findViewById(R.id.list); 
     adapter = new QuestListAdapter(getActivity(), questList); 
     listView.setAdapter(adapter); 

     fetchQuests(); 


     return rootView; 
    } 

    private void fetchQuests() { 
     // Creating volley request obj 
     JsonArrayRequest questReq = new JsonArrayRequest(url, 
       new Response.Listener<JSONArray>() { 
        @Override 
        public void onResponse(JSONArray response) { 
         Log.d(TAG, response.toString()); 
         hidePDialog(); 
         // Parsing json 
         for (int i = 0; i < response.length(); i++) { 
          try { 

           JSONObject obj = response.getJSONObject(i); 
           com.dusandimitrijevic.model.Quests q = new com.dusandimitrijevic.model.Quests(); 
           q.setTitle(obj.getString("title")); 
           q.setDescription(obj.getString("description")); 
           q.setDistrict(obj.getString("district")); 

           // adding quests to quest array 
           questList.add(q); 

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

         } 
         adapter.notifyDataSetChanged(); 
         // stopping swipe refresh 
         //swipeRefreshLayout.setRefreshing(false); 
        } 


       }, new Response.ErrorListener() { 
      @Override 
      public void onErrorResponse(VolleyError error) { 
       VolleyLog.d(TAG, "Error: " + error.getMessage()); 
       hidePDialog(); 

       // stopping swipe refresh 
       //swipeRefreshLayout.setRefreshing(false); 
      } 
     }); 

     // Adding request to request queue 
     AppController.getInstance().addToRequestQueue(questReq); 
    } 

    @Override 
    public void onDestroy() { 
     super.onDestroy(); 
     hidePDialog(); 
    } 

    private void hidePDialog() { 
     if (pDialog != null) { 
      pDialog.dismiss(); 
      pDialog = null; 
     } 
    } 
} 
+0

bro, whats that url, который вы используете! –

+0

Я использую localhost для тестирования приложения –

+0

Ссылка на URL работает. Я проверил это, но что-то не так в коде, и я не уверен, что. –

ответ

0

Запятая ; нет действительного разделитель полей. Также вы не можете использовать разделитель полей после последнего поля. Действительный JSON должен выглядеть следующим образом:

[ 
    { 
    "title": "Quest", 
    "description": "Description Quest", 
    "district": "District Quest" 
    } 
] 
Смежные вопросы