所以我试图在POST后验证一些有效载荷.
有效负载(JSON)如下所示:
{"value":"\"<html><body><a href='http://www.example.com'>Hi there!</a></body></html>\""}
Run Code Online (Sandbox Code Playgroud)
然后我尝试将上面的内容转换为JsonNode并提取" value "的值.但是,这两个方法asText()&toString(),返回不同的字符串值.
这两种方法的工作原理有何不同?
鉴于字符串 "\"<html><body><a href='http://www.example.com'>Hi there!</a></body></html>\""
toString返回"<html><body><a href='http://www.example.com'>Hi there!</a></body></html>"
asText()返回<html><body><a href='http://www.example.com'>Hi there!</a></body></html>
它是一个抽象的方法JsonNode,在其中被覆盖 TextNode.而且,根据它的实现,它应该返回值而不需要任何操作.
@Override
public String asText() {
return _value;
}
Run Code Online (Sandbox Code Playgroud)
它被覆盖了Object.因此,它是对象的文本表示.因此,toString实际上会返回给定对象上的完整文本形式.并且,根据它的实施TextNode.它会为您的值附加引用(在开头和结尾).
/**
* Different from other values, Strings need quoting
*/
@Override
public String toString()
{
int len = _value.length();
len = len + 2 + (len >> 4);
return new StringBuilder(len)
// 09-Dec-2017, tatu: Use apostrophes on purpose to prevent use as JSON producer:
.append('\'')
.append(_value)
.append('\'')
.toString();
}
Run Code Online (Sandbox Code Playgroud)
而且,打印时也可以看到相同的区别.
| 归档时间: |
|
| 查看次数: |
6772 次 |
| 最近记录: |