【问题标题】:Understanding Type of Java Object from Json String从 Json 字符串了解 Java 对象的类型
【发布时间】:2018-10-25 12:50:33
【问题描述】:

我正在使用 Spring Framework 创建一个简单的 rest web 服务。 我有一个分配给“/check”端点的方法。它接受带有正文的 POST 请求。正文包含我的自定义 java 对象的 json 形式。这是我的检查方法:

@PostMapping("/check")
    public Status check(@RequestBody String body) throws JSONException, InterruptedException, ExecutionException {  

        Object data = gson.fromJson(body,Object.class);

        if(data instanceof LocationData)
        {
            return Status.VALID_OBJECT;
        }
        else 
        {
            return Status.INVALID_OBJECT;
        }       
    }

(Status 是一个枚举,它有两种状态:VALID_OBJECT 和 INVALID_OBJECT)

我有一个类“LocationData”。所以我期待一个 LocationData 对象的 json 格式作为请求正文。我想了解请求是否具有正确的 json 格式。 “检查”方法在正确的 json 格式下无法正常工作。然后我在控制台中检查“数据”的类型,它返回 LinkedTreeMap。

我如何实现这个目标?

【问题讨论】:

    标签: java json spring gson


    【解决方案1】:

    您可以在您的方法中期待 LocationData 类的主体:

    public Status check(@RequestBody LocationData body) throws JSONException, InterruptedException, ExecutionException {
        ...
    }
    

    LocationData 需要实现 Serializable 才能使其工作。然后会自动检查此对象的有效性。

    更多信息here

    【讨论】:

    • 谢谢 :) 我可以成功地将请求直接发送到 body 对象中,但我也尝试使用 @Valid 注释来确保发送预期的 json。但它不起作用,现在想弄清楚。
    猜你喜欢
    • 1970-01-01
    • 2019-11-27
    • 2011-06-23
    • 2014-03-17
    • 2014-12-24
    • 2015-07-03
    • 1970-01-01
    • 1970-01-01
    • 2017-06-05
    相关资源
    最近更新 更多