簡體   English   中英

Java Map對象,其中包含要字符串化的JSON字符串字段

[英]Java map object, which contains JSON string fields to string

將對象映射到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"
}

似乎您的json結果是字符串化的。 嘗試將字符串結果放入單獨的JSONObject中,作為

return new JSONObject(mapper.writeValueAsString(this)).toString();

暫無
暫無

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

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