Может ли кто-нибудь помочь мне с анализом этого файла JSON? - PullRequest
0 голосов
/ 14 декабря 2011

У меня есть этот JSON-файл:

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

Теперь я хочу поместить часть version в текстовое представление txtVersion и часть description в текстовое представление txtDescription.

Кто-нибудь мне поможет?

Ответы [ 3 ]

0 голосов
/ 16 апреля 2012

Вы можете создать простой класс, как </p> <pre><code>public class Myclass{ String version; String description; String build-fingerprint; };

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

</p> <pre><code>Gson gson = new Gson(); Myclass obj = gson.fromJson(json_string, Myclass.class);

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

Note: Gson is an external library you need to import, download it from google.
0 голосов
/ 16 декабря 2015

Игнорируя пропущенные скобки в 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);
0 голосов
/ 13 января 2012

Итак, прежде всего, чтобы заявить, что было сказано выше, код 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, и в этот момент я могу делать с ним все, что захочу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...