2011-12-14 3 views
-2

У меня есть этот файл в формате JSON:Может ли кто-нибудь помочь мне разобрать этот файл JSON?

{ 
    "ics_desire":{ 
    "version":"Beta 0.1.1", 
    "description":"description here", 
    "build-fingerprint":"fingerprint" 
} 

Теперь я хочу поставить version участие в TextView txtVersion и description участие в TextView txtDescription.

Помогло бы мне?

+1

Вы, вероятно, следует вставить содержимое файла JSON, если вы хотите, чтобы кто-то сможет помочь вам ... – Danny

+4

Прежде всего, убедитесь, что ваш JSON действителен. Прямо сейчас, это не так. Он имеет 2 открывающих кронштейна и одну закрывающую скобу. Кроме того, что вы пробовали до сих пор? Это количество данных JSON не является сложным, поэтому любое количество учебных пособий сможет вам помочь. –

ответ

0

Итак, сначала укажите, что было сказано выше, код JSON некорректно отформатирован. Вы можете проверить, правильно ли вы создали код JSON, перейдя на http://json.parser.online.fr/. Ваш правильный JSON будет выглядеть следующим образом (вы пропали без вести закрывающий})

{ 
"ics_desire": { 
    "version": "Beta 0.1.1", 
    "description": "description here", 
    "build-fingerprint": "fingerprint" 
} 
} 

Далее, здесь приведен пример рабочего кода JSON, который я использовал для тестирования в прошлом.

{ 
"HealthySubstituteData": [ 
    { 
     "Assoc_ID": "1", 
     "uFood": "White Flour", 
     "hFood": "Wheat Flour", 
     "Category": "Baking", 
     "Description": "You can substitute blah blah blah...", 
     "Count": "5", 
     "submittedBy": "Administrator" 
    } 
] 
} 

И вот код, который я использую для получения этих данных.

ArrayList<HashMap<String, String>> mylist = new ArrayList<HashMap<String, String>>(); 
    JSONObject json = JSONfunctions.getJSONfromURL("http://your.url.com/whaterver"); 

    try 
    { 
     JSONArray healthySubstituteData = json.getJSONArray("HealthySubstituteData"); 



     for(int i=0;i<healthySubstituteData.length();i++) 
     {      
      HashMap<String, String> map = new HashMap<String, String>();  
      JSONObject e = healthySubstituteData.getJSONObject(i); 



      map.put("Assoc_ID", (String) e.get("Assoc_ID")); 
      map.put("uFood", (String) e.get("uFood")); 
      map.put("hFood", (String) e.get("hFood")); 
      map.put("category", (String) e.get("Category")); 
      map.put("description", (String) e.get("Description")); 
      map.put("count", (String) e.get("Count")); 
      map.put("submittedBy", (String) e.get("submittedBy")); 
      mylist.add(map);    
     }  
    } 

Так что теперь я в конечном итоге со списком массив типа HashMap, и я могу делать все, что я хочу с ним в тот момент.

0

Вы можете создать простой класс как

public class Myclass{ 
String version; 
String description; 
String build-fingerprint; 
}; 

, а затем использовать Gson для преобразования JSON к объекту и наоборот:

Gson gson = new Gson(); 
Myclass obj = gson.fromJson(json_string, Myclass.class); 

json_string должен содержать вашу строку Джейсона. Теперь вы можете получить значения объектов класса с помощью геттеров.

Note: Gson is an external library you need to import, download it from google.
0

Игнорирование о недостающих скобках в формате JSON, этот код поможет вам

JSONObject json = JSONfunctions.getJSONfromURL("http://your.url.com/whaterver"); //the site where you get your JSON 
JSONObject daata = json.getJSONObject("ics_desire"); //grabbing the inner object 
String version = daata.getString("version");   //grabbing values 
String description = daata.getString("description"); 
txtVersion.setText(version);       //Hope you have initialized the Views. 
txtDescription.setText(description); 
Смежные вопросы