Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.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 如何从JSONObject检查值的json日期类型?_Java_Json_Datetime_Odata - Fatal编程技术网

Java 如何从JSONObject检查值的json日期类型?

Java 如何从JSONObject检查值的json日期类型?,java,json,datetime,odata,Java,Json,Datetime,Odata,我有一个数据类型值混合的jsonObject。我想承认他们的课程,以便我可以进一步处理 但是,当对象的类为Json日期类型时,我无法检查对象的类型。 示例试用代码我有 预期结果: 我尝试在org.apache.olingo-olingo-odata2-core-2.0.6.jar中使用EdmDateTime和EdmDateTimeOffset类,但这不起作用。 它仍然显示/Date(146366774000+9000)/is字符串Json结构不包含日期类型。你需要自己转换它 你可以做:

我有一个数据类型值混合的jsonObject。我想承认他们的课程,以便我可以进一步处理

但是,当对象的类为Json日期类型时,我无法检查对象的类型。

示例试用代码我有

预期结果:

我尝试在org.apache.olingo-olingo-odata2-core-2.0.6.jar中使用EdmDateTime和EdmDateTimeOffset类,但这不起作用。
它仍然显示/Date(146366774000+9000)/is字符串

Json结构不包含日期类型。你需要自己转换它

你可以做:

    else if(aObj instanceof String) {
        if (aObj.toString().startsWith("/Date")) {
            System.out.println(aObj+" is Date");
        }   
        else
            System.out.println(aObj+" is String");
后来

        String str = "/Date(1463667774000-9000)/";
        Date date = new Date(Long.parseLong(str.replaceAll(".*?(\\d+).*", "$1")));
1 is Integer
str is String
/Date(1463667774000+9000)/ is Date
    else if(aObj instanceof String) {
        if (aObj.toString().startsWith("/Date")) {
            System.out.println(aObj+" is Date");
        }   
        else
            System.out.println(aObj+" is String");
        String str = "/Date(1463667774000-9000)/";
        Date date = new Date(Long.parseLong(str.replaceAll(".*?(\\d+).*", "$1")));