Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/201.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在Android中过滤JsonObject中的值?_Java_Android_Json_Android Json - Fatal编程技术网

Java 如何在Android中过滤JsonObject中的值?

Java 如何在Android中过滤JsonObject中的值?,java,android,json,android-json,Java,Android,Json,Android Json,如何从JsonObject解析所有文件上载日期 > {"-Kopv2EYUt7EeisRiiCz":{"deviceName":"LYF","fileUploadDate":"07\/12\/2017 2:00:57 PM"}, "-KopvA-cTtzgzSbsKTrw":{"deviceName":"LYF","fileUploadDate":"07\/12\/2017 2:01:29 PM",}} 使用GSON库 fileUploadDate = 07\/12\/2017 2:00

如何从JsonObject解析所有文件上载日期

> {"-Kopv2EYUt7EeisRiiCz":{"deviceName":"LYF","fileUploadDate":"07\/12\/2017 2:00:57 PM"},
"-KopvA-cTtzgzSbsKTrw":{"deviceName":"LYF","fileUploadDate":"07\/12\/2017 2:01:29 PM",}}
使用GSON库

fileUploadDate = 07\/12\/2017 2:00:57 PM
fileUploadDate = "07\/12\/2017 2:01:29 PM
请尝试此操作以获得要解析的响应

我可以帮你吗

public void parseJson(String json){
        Gson gson = new Gson();
        Type stringStringMap = new TypeToken<Map<String, Map<String,String>>>(){}.getType();
        Map<String,Map<String,String>> map = gson.fromJson(json, stringStringMap);

        Iterator it = map.entrySet().iterator();
        while (it.hasNext()) {
            Map.Entry pair = (Map.Entry)it.next();
            Map<String,String> innerMap = (Map<String,String>)pair.getValue();
            getInnerMapDetail(innerMap);
            it.remove(); // avoids a ConcurrentModificationException
        }
}
    public void getInnerMapDetail(Map<String,String> innerMap)
    {   
         String fileUploadDate = innerMap.get("fileUploadDate"); // you will get here
        }

    }
此方法将返回密钥

try{
     JSONObject jsonObject = new JSONObject(response);
     List<String> keyList = getAllKeys(jsonObject);
     for(String key : keyList){

          JSONObject innerObject = jsonObject.getJSONObject(key);
          String deviceName = innerObject.getString("deviceName");
          String fileUploadDate = innerObject.getString("fileUploadDate");

          System.out.println(deviceName +"--"+ fileUploadDate);
      }
}catch(Exception e){
            e.printStackTrace();
}

首先,您需要解析json对象并将其存储到字符串中,如下所示

private List<String> getAllKeys(JSONObject jsonObject) throws JSONException{
    List<String> keys = new ArrayList<String>();

    Iterator<?> iterator = jsonObject.keys();
    while( iterator.hasNext() ) {
        String key = (String)iterator.next();
        keys.add(key);
    }
   return keys;
}
String fileUploadDate;
JSONObject -Kopv2EYUt7EeisRiiCz = new JSONObject;
fileUploadDate= sys.getString("fileUploadDate");
在你像那样改变字符串之后

String fileUploadDate;
JSONObject -Kopv2EYUt7EeisRiiCz = new JSONObject;
fileUploadDate= sys.getString("fileUploadDate");

您可以大胆地进行输出。

参考此链接,我建议两种选择。第一种方法是检索已经过滤的json对象,这样您就可以使用过滤参数发出请求,服务器将过滤后的json发送给您,然后您可以在JsonObject中解析它。第二个选项是检索json,在JsonObject中解析它,然后实现自己的方法来按日期过滤。如果您在解析到JsonObject时遇到问题,StackOverflow中有许多已解决的问题。这是肯定的,替换方法将有所帮助。首先按原样获取jsonstring,然后替换即可。我同意上面的说法