0
我遇到了問題,同時將我的對象映射到JSON。Java地圖對象,其中包含要字符串的JSON字符串字段
我有一個對象,我需要轉換爲propper JSON,但我的一些對象的字符串字段都已經以JSON格式:
Sdr sdr = new Sdr();
sdr.setLocation_area(("location_area"));
sdr.setEvent_info(("{\"chargeableDur\":0}"));
sdr.setAgent_info("{\"scp\":\"NAVI\",\"stack\":\"CAP2\"}");
sdr.setService_info(("{\"bcap\":\"8090A3\",\"balID\":55969859}"));
sdr.setStarttime(("starttime"));
對於JSON映射我使用ObjectMapper:
public String toJsonString() {
ObjectMapper mapper = new ObjectMapper();
try {
return mapper.writeValueAsString(this);
} catch (JsonProcessingException e) {
logger.error(e.getMessage());
}
return toString();
}
然而,ObjectMapper未能映射字符串,已經包含JSON正確,並且映射後我得到這個類型的JSON:
{
"event_info":""{\"chargeableDur\":0}",
"location_area":"location_area",
"agent_info":"{\"scp\":\"NAVI\",\"stack\":\"CAP2\"}",
"service_info":""{\"bcap\":\"8090A3\",\"balID\":55969859}",
"starttime":"starttime"
}
我想ObjectMapper映射我的對象這樣的:
{
"event_info":{
"chargeableDur":0
},
"location_area":"location_area",
"agent_info":{
"scp":"NAVI",
"stack":"CAP2"
},
"service_info":{
"bcap":"8090A3",
"balID":55969859
},
"starttime":"starttime"
}
因此,您想對字符串進行JSON化,並讓JSON已經像原來一樣?有什麼辦法可以知道哪一個已經是json? – Nathan
'mapper.writeValueAsString(this);'使用類的每個屬性的'getX()'方法將它們放入JSon中?如果是這樣,只要重新定義這些方法,以便在沒有JSon格式時返回它們。 – Asew
如果您將這些字符串更改爲它們的字節數組實現,並將反序列化將它們還原爲字符串,那該怎麼辦? –