何时使用ObjectMapper类的writeValueAsString()方法以及何时直接使用String

Nid*_*257 2 java json jackson

在我的项目中有两种类型的代码:

  1. HttpEntity<String> entity = new HttpEntity<String>(comment, headers);

这里comment是String类型,header是HttpHeader对象。

  1. ObjectMapper om = new ObjectMapper(); HttpEntity<String> entity = new HttpEntity<String>(om.writeValueAsString(comment), headers);

我只是想知道哪一个更好以及为什么。

Bre*_*ton 6

writeValueAsString将其写入 JSON 格式的字符串。例如,如果我有一个坐标类,如下所示:

class Coordinate {
  private int x;
  private int y;
  // plus constructor and methods
}
Run Code Online (Sandbox Code Playgroud)

然后om.writeValueAsString(new Coordinate(1, 2))会产生类似的东西

{ "x":1,"y":2 }
Run Code Online (Sandbox Code Playgroud)

而不是该toString 方法产生的任何结果。

因此,当您的客户端需要 JSON 格式的字符串时,请使用ObjectMapper.writeValueAsString.