2015-08-14 3 views
0

Я действительно новичок в этом. Я работал с Java и json.Parsing Json в Java проблема с json-форматом android

вопрос у меня есть: Как я могу получить информацию от моего .json файла в следующем формате:

[{"name":"My name","country":"Country name"}] 

теперь я могу получить с помощью следующего кода:

JSon файл : файл

{"name":"My name","country":"Country name"} 

Java:

@Override 
     protected JSONObject doInBackground(String... args) { 

      JsonParser jParser = new JsonParser(); 
      JSONObject json; 
      json = jParser.getJSONFromUrl("http://example.com/myfile.json"); 

      System.out.println("JSON: " + json); 

      if(json != null) { 

       try { 

        name = json.getString("name"); 
        country = json.getString("country"); 

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

      } 

      return null; 
     } 

Но опуская [] из моего файла JSON):

Как получить ту же информацию, не пропуская ничего моего файла JSON?

Я читал о getJSONArray, и, как я вижу, имея свой файл [], но я не понимаю, как работать с этим файлом без массива, который хранит «имя».

Кто-нибудь понимает меня? Я не должен опускать [] из моего json-файла.

Извините за мой английский):

ответ

0

Вы не получаете JSONObject в своем ответе, вы получаете JSONArray, который содержит один объект. Поэтому эти линии неверны

JSONObject json; 
json = jParser.getJSONFromUrl("http://example.com/myfile.json"); 

И вы должны заменить его

JSONArray json; 

Тогда вы получите ваш 0th объект

JSONObject wholeObject = json.getJSONObject(0); 

И получить строки из него

name = wholeObject.getString("name"); 
country = wholeObject.getString("country"); 
+0

Thank you @poss Эта работа для меня, но мне также пришлось изменить некоторые вещи из моего класса JasonParser. Я вижу, что это не является обычным явлением для json-файла. – user5195185

0

Можете попробовать:

protected JSONObject doInBackground(String... args) { 

     JsonParser jParser = new JsonParser(); 
     JSONObject json; 
     json = jParser.getJSONFromUrl("http://example.com/myfile.json"); 

     System.out.println("JSON: " + json); 

     if(json != null) { 

      try { 
       JSONArray jsonArray = new JSONArray(json.toString()); 
       JSONObject newJSON = jsonArray.get(0); //first index 
       name = newJSON.getString("name"); 
       country = newJSON.getString("country"); 

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

     } 

     return null; 
    }