我正在嘗試將以下 Java 物件保存為 MongoDB 中的檔案,這是我的類:
public class GenericIpConfig {
String connection_type;
String port;
String port_ingenico;
String ip;
String ip_ingenico;
String id_ingenico;
boolean active_ingenico;
long lastPushTime;
}
@Data
@Document(collection = "generic_device_config")
public class GenericDeviceConfig {
@Id
String _id;
String storeCode;
String companyCode;
long updated;
boolean enabled;
ArrayList<SerialPort> serialPorts;
String companyId;
GenericIpConfig ipConfig;
}
這是我通過 POSTMAN 發送的請求:
{
"updated":0,
"enabled":true,
"serialPorts":[],
"companyId":"600",
"companyCode":"0",
"storeCode":"0",
"ipConfig": {
"connection_type":"ETHERNET",
"port": "23",
"port_ingenico": "",
"ip": "192.168.10.55",
"ip_ingenico": "",
"id_ingenico": "",
"active_ingenico": false,
"lastPushTime": 0
}
}
出于某種原因,我不斷收到以下錯誤:
JSON parse error: Unrecognized field \"connection_type\" (class it.igesa.monitoringsystem.model.mongo.device.config.GenericIpConfig), not marked as ignorable; nested exception is com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field \"connection_type\" (class it.igesa.monitoringsystem.model.mongo.device.config.GenericIpConfig), not marked as ignorable (0 known properties: ]
我覺得我的代碼缺少一些東西,因為這是我第一次使用 SpringBoot/MongoDB;
uj5u.com熱心網友回復:
看起來 Jackson 無法識別欄位的 setter 方法,因為它們不遵循 java 命名約定。嘗試使用此注釋修復無法識別的欄位 - @JsonProperty("property_name_here"),將其放在設定器上。
你也在混合它們,你的一些欄位被命名something_something,而另一些被命名somethingSomething,這是標準的 java 方式。為專案選擇一個并堅持下去是個好主意。
您還應該閱讀使用 jackson檔案、注釋示例的序列化。
uj5u.com熱心網友回復:
最后我找到了解決方案。為嵌套類定義 setter 和 getter 注釋解決了這個問題。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/409410.html
標籤:
上一篇:ResponseEntity不接受回傳型別“byte[]”而是“ResponseEntity”
下一篇:創建org.springframework.web.servlet.LocaleResolver型別的Bean時出現BeanCreationException
