2015-02-23 29 views
4

我发现自己需要在Java中服务器端JSON.stringify(objectMapper.writeValueAsString(someJavaBean));,因为我将HttpClient调用到基础结构中的另一个服务。杰克逊有这样的功能吗?有没有一种简单的方法来做到这一点,而不需要为我的项目添加其他依赖项?杰克逊有什么像JSON.stringify?

如果重要,我们是杰克逊2.3.2。

我需要做的是将一些JSON像

{ "first_name" : "Robert", "last_name" : "Kuhar" } 

转换为JavaScript字符串像

"{ \"first_name\" : \"Robert\", \"last_name\" : \"Kuhar\" }" 

它作为替换所有与\”引号,是不是那样简单?像如果在值中嵌入了引号,会发生什么情况?或者某些值是单引号分隔的吗?似乎应该有库调用来执行此操作。

有什么建议吗?

回答

5
String json = objectMapper.writeValueAsString(someObject); 
String encodedASecondTime = objectMapper.writeValueAsString(json); 

就这么简单。但不知道为什么你会想要这样做,因为JSON值已经是一个有效的对象文字了。你可以做

String json = objectMapper.writeValueAsString(someObject); 

,然后生成JavaScript像

"var obj = " + json + ";" 
+0

“不知道为什么你会想”之叹。我不想。我正在处理一个充当“信封”的JSON消息格式,但不是一个非常灵活的。消息格式本身是JSON,但我必须将我的有效内容填充到单个字段中,消息JSON作为字符串。该字符串唯一合法的价值,你可能会问? “字符串化”JSON。育。我认为你的解决方案有效,我只是测试它。 – 2015-02-23 23:42:11