gpt4 book ai didi

java - JsonNode 中的 asText() 和 toString() 有什么区别?

转载 作者:行者123 更新时间:2023-12-01 23:13:46 26 4
gpt4 key购买 nike

所以我试图在发布后验证一些有效负载。

有效负载 (JSON) 如下所示:

{"value":"\"<html><body><a href='http://www.example.com'>Hi there!</a></body></html>\""}

然后我尝试将上面的内容转换为 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>

最佳答案

<强> asText ()

它是来自 JsonNode 的抽象方法,在 TextNode 中被覆盖。而且,根据其实现,它应该返回值而不进行任何操作。

@Override
public String asText() {
return _value;
}

<强> toString ()

它被 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();
}

而且,打印它们时您也可以看到相同的差异。

关于java - JsonNode 中的 asText() 和 toString() 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48655074/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com