我想从URL解析JSON;我的JSON包含以下结构:
{
"HasError": false,
"ErrorMessage": null,
"IsFinal": true,
"content":
{
"item":[
{
"category": "xxx"
},
{
"category": "yy"
}
]
}
}
我如何阅读这个结构?一个示例或JSON解析器会有所帮助。
答案 0 :(得分:1)
使用Google的Gson。第一种方法是检索以JSON格式接收的数据,另一种方法是转换对象并作为JSON发送。您可以使用任何类型的对象。您可以创建一个具有所有这些参数的类,并使用该类的实例发送/接收。您只需要将JSON转换为字符串,使用toString()
即可轻松完成import com.google.gson.Gson;
public class JSONParser
{
private static Gson gson = new Gson();
public static Data jsonToData(String json)
{
return gson.fromJson(json, Data.class);
}
/**
* Converts the object to JSON
* @param obj object from type Object
* @return String of JSON format
*/
public static String objectToJson(Object obj)
{
Gson writer = new Gson();
return writer.toJson(obj);
}
}
答案 1 :(得分:1)
请尝试下面这个。
String str = "{ \"HasError\": false, \"ErrorMessage\": null, \"IsFinal\": true, \"content\": { \"item\":[ { \"category\": \"xxx\" }, { \"category\": \"yy\" } ] } }";
try {
JSONObject jObject=new JSONObject(str);
Log.d("HasError==", jObject.getString("HasError"));
Log.d("ErrorMessage==", jObject.getString("ErrorMessage"));
Log.d("IsFinal==", jObject.getString("IsFinal"));
jObject = jObject.getJSONObject("content");
JSONArray jArrayObject = new JSONArray(jObject.getString("item"));
for (int i = 0; i<jArrayObject.length(); i++) {
Log.d("category==", jArrayObject.getJSONObject(i).getString("category").toString());
}
} catch (Exception e) {
}