[英]Retrieve data from JSON Java Android
我在通过JSON检索信息时遇到问题
Raw Json是这个
{“ date”:“ {\\”昨天\\“:\\”星期三28 \\“,\\”今天\\“:\\”星期四29 \\“,\\”明天\\“:\\”星期五30 \\“}”
现在我该如何接受这个Json并进行格式化?
{
"date":{
"yesterday":"Wed 28",
"today":"Thu 29",
"tomorrow":"Fri 30"
}
}
然后从密钥重试日期?
String jsonStr = sh.makeServiceCall(url);
Log.e("RAW-JSON: ","Retrieve RAW-Json is "+jsonStr);
if (jsonStr != null) {
try {
JSONObject jsonObj = new JSONObject(jsonStr);
JSONArray DATESTRING = jsonObj.getJSONArray("date");
JSONObject d = DATESTRING.getJSONObject(0);
String Ieri = d.getString("yesterday");
Log.e("DATE-JSON", "Retrieve DATE-Json is " + yesterday);
} catch (JSONException e) {
Log.e("ERROR", "Not a good result.");
e.printStackTrace();
}
}
我强烈建议您使用Gson库来解析JSON文档,因为它更加轻松和优雅。
public static date parseJSON(String jsonArray) {
date yourDate = new date();
try {
yourDate = (gson.fromJson(jsonArray, date.class));
} catch (Exception e) {
e.printStackTrace();
}
return yourDate;
}
然后,课程日期只是一个与您要阅读的JSON中存在相同元素的类:
public class date {
private String yesterday;
private String today;
private String tomorrow;
}
JSONArray DATESTRING = jsonObj.getJSONArray("date")
是错误的,因为“ date”不是JsonArray而是JsonObject!
您可能需要做的是(假设您想要今天的日期):
String todaysDate = jsonObj.getJSONObject("date").getString("today");
只需将\\“替换为”,即可获得干净的json字符串,然后解析json以读取使用JSONObjct的数据。
jsonStr = jsonStr.replace("\\\"", "\"");
JSONObject jsonObj = new JSONObject(jsonStr);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.