首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Java map对象,其中包含要字符串的JSON字符串字段

Java map对象,其中包含要字符串的JSON字符串字段
EN

Stack Overflow用户
提问于 2017-08-02 22:12:00
回答 1查看 343关注 0票数 0

在将我的对象映射到JSON时,我遇到了问题。

我有一个对象,我需要将它转换为propper JSON,但我的对象的一些字符串字段已经是JSON格式:

代码语言:javascript
复制
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:

代码语言:javascript
复制
public String toJsonString() {
    ObjectMapper mapper = new ObjectMapper();
    try {
        return mapper.writeValueAsString(this);
    } catch (JsonProcessingException e) {
        logger.error(e.getMessage());
    }
    return toString();
}

然而,ObjectMapper无法映射已经正确包含JSON的字符串,在映射之后我得到了这种类型的JSON:

代码语言:javascript
复制
{  
   "event_info":""{\"chargeableDur\":0}",
   "location_area":"location_area",
   "agent_info":"{\"scp\":\"NAVI\",\"stack\":\"CAP2\"}",
   "service_info":""{\"bcap\":\"8090A3\",\"balID\":55969859}",
   "starttime":"starttime"
}

我希望ObjectMapper像这样映射我的对象:

代码语言:javascript
复制
{  
   "event_info":{  
      "chargeableDur":0
   },
   "location_area":"location_area",
   "agent_info":{  
      "scp":"NAVI",
      "stack":"CAP2"
   },
   "service_info":{  
      "bcap":"8090A3",
      "balID":55969859
   },
   "starttime":"starttime"
}
EN

回答 1

Stack Overflow用户

发布于 2017-08-02 22:17:41

看起来你的json结果是字符串。尝试将字符串结果放在单独的JSONObject中

代码语言:javascript
复制
return new JSONObject(mapper.writeValueAsString(this)).toString();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45463308

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档