簡體   English   中英

無法將帶有連字符的 JSON 字段映射到 Java 對象字段

[英]Unable to map a JSON field with Hyphen to the Java Object field

Java POJO 是這樣的:

import javax.validation.Valid;
import com.fasterxml.jackson.annotation.JsonProperty;


 Class MyClass{

 @JsonProperty(value = "config-meta-info")
 @Valid
 private ConfigMetaInformation configMetaInfo;

 @JsonProperty(value = "name")
 @Valid
 private String name;

public MyClass(){}

public MyClass(String name,ConfigMetaInformation  configMetaInfo){
this.name=name;
this.configMetaInfo=configMetaInfo;
}

@JsonProperty("name")
public String getName() {
return name;
}

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

 @JsonProperty("config-meta-info")
public ConfigMetaInformation getConfigMetaInfo() {
return configMetaInfo;
}

@JsonProperty("config-meta-info")
public void setConfigMetaInfo(ConfigMetaInformation configMetaInfo) {
this.configMetaInfo= configMetaInfo;
}

}

我正在使用 JSON,如下所示:

{
  "name":"abc",
 "config-meta-info":"someInfo" 
}

但是當我嘗試從 MongoDB 文檔中獲取數據時,我看到 config-meta-info 為空。 我是否缺少任何東西來處理這個烤肉串鑰匙?

在 MongoDB 的情況下我可能是錯的,但在其他基於 JSON 的數據庫中,它們不允許在字段/鍵中使用連字符,通常首選下划線。 而不是config-meta-info ,嘗試config_meta_info

你展示的結構:

{
  name:"abc",
  config-meta-info:"someInfo" 
}

不是 JSON。 規范RFC-8259定義了所有類型 (6) 但什么是nameconfig-meta-info 它可以是 JavaScript,但不能是 JSON。

正確的 JSON:

{
  "name":"abc",
  "config-meta-info":"someInfo" 
}

您可以無限制地使用連字符。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM