ฉันประสบปัญหาขณะแมปวัตถุของฉันกับ JSON
ฉันมีออบเจ็กต์ซึ่งฉันต้องแปลงเป็น JSON ที่เหมาะสม แต่ฟิลด์ String ของออบเจ็กต์บางรายการอยู่ในรูปแบบ 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"
}
mapper.writeValueAsString(this);
ใช้เมธอดgetX()
ของแต่ละแอตทริบิวต์ของคลาสของคุณเพื่อใส่ไว้ใน JSon ? หากเป็นเช่นนั้น ให้กำหนดวิธีการเหล่านั้นใหม่เพื่อส่งคืนโดยไม่มีรูปแบบ JSon เมื่อมี - person Asew   schedule 02.08.2017