Android/java Анализ JSON с пронумерованными данными

Я искал анализ данных JSON в java/android. к сожалению, такого же JSON, как у меня, нет. у меня есть данные JSON, которые включают странное число, выглядит так:

{
"formules": [{"1":
    {
  "formule": "Linear Motion",
  "url": "qp1"
},"2":
{
  "formule": "Constant Acceleration Motion",
  "url": "qp2"
},"3":
{
  "formule": "Projectile Motion",
  "url": "qp3"
}
}
]
}

Пожалуйста, помогите мне, как разобрать это в Java/Android. Спасибо


person Nizarhdt    schedule 15.05.2015    source источник
comment
это действительно json... сначала создайте jsonobject, затем получите массив из jsonobject, и вы его получите   -  person Samir Mangroliya    schedule 15.05.2015
comment
еще одна проблема с JSON... нет такого же JSON, как у меня может быть, но есть миллиарды похожих, если вы не получите его из похожего примера JSON, вам следует вообще отказаться от программирования   -  person Selvin    schedule 15.05.2015


Ответы (2)


попробуй это

JSONObject jsonObject = new JSONObject(string);
JSONArray jsonArray = jsonObject.getJSONArray("formules");
JSONObject jsonObject1 = jsonArray.getJSONObject(0);

Теперь вы можете получить доступ к объекту "1" как

JSONObject json = jsonObject1.getJSONObject("1");

или используйте итератор для повторения, как показано ниже

Iterator keys = jsonObject1.keys();
while(keys.hasNext()) {
            // loop to get the dynamic key
            String currentDynamicKey = (String)keys.next();
            JSONObject json = jsonObject1.getJSONObject(currentDynamicKey);

        }

дайте мне знать, если это работает

person amodkanthe    schedule 15.05.2015
comment
привет апк, работает!! Спасибо огромное. действительно ценю это. - person Nizarhdt; 15.05.2015

Для синтаксического анализа Json в Android я нашел библиотеку Gson полезной.

http://mvnrepository.com/artifact/com.google.code.gson/gson/2.3

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

public class ClassPojo
{
private Formules[] formules;

public Formules[] getFormules ()
{
    return formules;
}

public void setFormules (Formules[] formules)
{
    this.formules = formules;
}

@Override
public String toString()
{
    return "ClassPojo [formules = "+formules+"]";
}
}
public class Formules
{
private Formule 3;

private Forumle 2;

private Formule 1;



}

public class Formule
{
private String formule;

private String url;

public String getFormule ()
{
    return formule;
}

public void setFormule (String formule)
{
    this.formule = formule;
}

public String getUrl ()
{
    return url;
}

public void setUrl (String url)
{
    this.url = url;
}

@Override
public String toString()
{
    return "ClassPojo [formule = "+formule+", url = "+url+"]";
}
}       

затем, чтобы преобразовать его в JSon и из него, вы можете использовать

//Convert to JSON
ClassPojo pojo = new ClassPojo();
Gson gson = new Gson();
String json = gson.toJson(pojo);

//COnvert back to Java object
ClassPojo pojo = gson.fromJson(json,ClassPojo.class);
person wolfaviators    schedule 15.05.2015