Android/java 使用编号数据解析 JSON
Android/java Parsing JSON with numbered data
我一直在 java/android 中寻找解析 JSON 数据。不幸的是,没有 JSON 和我的一样。我有 JSON 包含奇怪数字的数据,看起来像:
{
"formules": [{"1":
{
"formule": "Linear Motion",
"url": "qp1"
},"2":
{
"formule": "Constant Acceleration Motion",
"url": "qp2"
},"3":
{
"formule": "Projectile Motion",
"url": "qp3"
}
}
]
}
请帮助我如何在 Java/android 中解析它。谢谢
为了在 Android 中解析 Json,我发现 Gson 库很有用
http://mvnrepository.com/artifact/com.google.code.gson/gson/2.3
它需要创建一个代表您的对象的 pojo class。可能看起来像
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);
试试这个
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);
}
让我知道它是否有效
我一直在 java/android 中寻找解析 JSON 数据。不幸的是,没有 JSON 和我的一样。我有 JSON 包含奇怪数字的数据,看起来像:
{
"formules": [{"1":
{
"formule": "Linear Motion",
"url": "qp1"
},"2":
{
"formule": "Constant Acceleration Motion",
"url": "qp2"
},"3":
{
"formule": "Projectile Motion",
"url": "qp3"
}
}
]
}
请帮助我如何在 Java/android 中解析它。谢谢
为了在 Android 中解析 Json,我发现 Gson 库很有用
http://mvnrepository.com/artifact/com.google.code.gson/gson/2.3
它需要创建一个代表您的对象的 pojo class。可能看起来像
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);
试试这个
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);
}
让我知道它是否有效