【问题标题】:How to validate the Json property (key) name?如何验证 Json 属性(键)名称?
【发布时间】:2020-06-14 16:50:37
【问题描述】:

如何验证 JSON 属性(键)名称?

我想在不使用架构验证的情况下验证 JSON 属性(键)名称,

@Data 
@AllArgsConstructor
@NoArgsConstructor
public Student {

    private int studNo;

    @jsonProperty("studname")
    private String studname;
}

如果我像这样提出请求

{
   "studNo": 50,
   "studName": "Viji"
}

它正在接受请求,但我只想使用下面的请求

{       
   "studNo": 50,
   "studname": "Viji"
}

请帮忙。

【问题讨论】:

  • 更改@jsonProperty("studname") => @jsonProperty("studName")
  • @Joel 我认为 OP 正在寻找一种方法来强制解析器将键视为区分大小写

标签: java android json


【解决方案1】:

如果您使用的是 Jackson 库,请按如下方式实现您的代码:

 public static void main(String[] args) throws IOException {
        Test aaa = new Test("aaa");
        System.out.println(new ObjectMapper().writeValueAsString(aaa)); //output {"a":"aaa"}
        String str = "{\"name\":\"aaa\"}"; // 
        Test test = new ObjectMapper().readValue(str, Test.class); // give exception
        System.out.println(test.getName());

    }

class Test{
    @JsonProperty(value = "a")
    private String name;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Test(String name) {
        this.name = name;
    }
}

【讨论】:

    猜你喜欢
    • 2020-06-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-25
    • 1970-01-01
    • 2021-01-28
    • 2016-11-02
    • 1970-01-01
    相关资源
    最近更新 更多