Android 如何获取json对象和数组值?
如何以这种格式解析JSON值?我想获得数据元素的详细信息,但在数据内部有“日期”,在日期内部有一个包含两个以上元素的数组。我想先从数据中获取所有日期,然后在这些日期内获取这些日期内的所有信息。我怎样才能做到这一点?请帮忙我尝试了以下代码,但没有成功Android 如何获取json对象和数组值?,android,arrays,json,Android,Arrays,Json,如何以这种格式解析JSON值?我想获得数据元素的详细信息,但在数据内部有“日期”,在日期内部有一个包含两个以上元素的数组。我想先从数据中获取所有日期,然后在这些日期内获取这些日期内的所有信息。我怎样才能做到这一点?请帮忙我尝试了以下代码,但没有成功 try { JSONObject jsonObject = new JSONObject("data"); JSONArray jsonArray =jsonObject.getJSONArray(String.valueof(cuu
try {
JSONObject jsonObject = new JSONObject("data");
JSONArray jsonArray =jsonObject.getJSONArray(String.valueof(cuurentdate));
JSONArray session;
for (int i = 0; i < jsonArray.length() - 1; i++) {
jsonObject = jsonArray.getJSONObject(i);
session= jsonObject.getJSONArray("session");
Log.d("MyLog", session + "");
}
} catch (JSONException e) {
e.printStackTrace();
}
试试这个代码
在这段代码中,jsonMstObject是临时对象,您必须使用API响应JSONobject而不是jsonMstObject
试试看{
JSONObject jsonMstObject=newJSONObject(“{”status“:1,“status_code“:200,“data:{”2018-02-11:“{”session:“01:00am”,“place”:true},{”session:“02:00am”,“place”:true}),“2018-02-12:“{”session:“01:00am”,“place”:true},{”session session:“02:00am”,“place”:true}}”);
JSONObject JSONObject=jsonMstObject.getJSONObject(“数据”);
JSONArray JSONArray=jsonObject.getJSONArray(String.valueof(cuurentdate));
ArrayList arrSession=新建ArrayList();
for(int i=0;i
在这段代码中,arrSession是会话字符串数组
例如,您通过了cuurentdate=“2018-02-11”,然后您收到了如下结果
[01:00 AM,02:00 AM]
注意:此代码基于您的cuurentdate参数工作。这是从数据中获取静态日期数组并创建字符串数组的代码 您只需要将响应字符串传递给方法。您可以尝试以下方法:
private void jsonParsing(String jsonString) {
// String jsonString = "{ \"status\": 1, \"status_code\": 200, \"data\": { \"2018-02-11\": [ { \"session\": \"01:00 AM\", \"place\": true }, { \"session\": \"02:00 AM\", \"place\": true } ], \"2018-02-12\": [ { \"session\": \"01:00 AM\", \"place\": true }, { \"session\": \"02:00 AM\", \"place\": true } ] } }";
try {
JSONObject jsonObject = new JSONObject(jsonString);
JSONObject dataObj = jsonObject.getJSONObject("data");
Iterator<String> iter = dataObj.keys();
Log.e(TAG, "jsonParsing: "+iter );
while (iter.hasNext()) {
String key = iter.next();
JSONArray datesArray = dataObj.getJSONArray(key);
ArrayList<String> sessions = new ArrayList<String>();
for (int i = 0; i < datesArray.length(); i++) {
JSONObject datesObject = datesArray.getJSONObject(i);
sessions.add(datesObject.getString("session"));
}
Log.d("MyLog", sessions + "");
}
} catch (JSONException e) {
e.printStackTrace();
}
}
private void jsonParsing(字符串jsonString){
//字符串jsonString=“{\'status\”:1,“status\”:200,“data\”:{\'2018-02-11\:[{\'session\:“01:00am\”,\'place\:true},{\'session\”:“02:00am\”,“place\”:true},\'2018-02-12\:[{\'session\:“01:00am\”,“place\”:true},{\'session;
试一试{
JSONObject JSONObject=新的JSONObject(jsonString);
JSONObject dataObj=JSONObject.getJSONObject(“数据”);
迭代器iter=dataObj.keys();
Log.e(标签“jsonParsing:”+iter);
while(iter.hasNext()){
String key=iter.next();
JSONArray datesArray=dataObj.getJSONArray(key);
ArrayList会话=新建ArrayList();
对于(int i=0;i
(1)获取主json的JSONObject
JSONObject objMain = new JSONObject("your json string");
(2) 从主json获取“数据”的JSONObject
JSONObject jsonData = objMain.getJSONObject("data")
(3) 从对象“数据”获取所有键(日期)
迭代器iter=jsonData.keys();
while(iter.hasNext()){
String key=iter.next();
试一试{
JSONArray arrayDate=objData.getJSONArray(键)
对于(i=0;i JSONObject objMain = new JSONObject("your json string");
JSONObject jsonData = objMain.getJSONObject("data")
Iterator<String> iter = jsonData.keys();
while (iter.hasNext()) {
String key = iter.next();
try {
JSONArray arrayDate = objData.getJSONArray(key)
for (i = 0; i < arrayDate.length(); i++) {
JSONObject objDate = arrayDate.getJSONObject(i)
Log.d("#session :", "" + objDate.getString("session"))
Log.d("#place :", "" + objDate.getBoolean("place"))
}
} catch (JSONException e) {
// Something went wrong!
}
}