В чем разница между JsonElement#getAsString()
и JsonElement#toString()
?
Есть ли ситуации, когда нужно использовать другую?
В чем разница между JsonElement#getAsString()
и JsonElement#toString()
?
Есть ли ситуации, когда нужно использовать другую?
Предполагая, что вы имеете в виду JsonElement
:
getAsString()
чтобы получить этот элемент как строковое значение.
Этот метод обращается и возвращает свойство элемента, то есть значение элемента как объекта java String
.
toString()
Возвращает строковое представление этого элемента.
Этот метод является стандартным методом java toString
, т.е. возвращает человеческое читаемое представление самого элемента.
Для лучшего понимания позвольте мне привести пример:
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonPrimitive;
public class GsonTest {
public static void main(String[] args) {
JsonElement jsonElement = new JsonPrimitive("foo");
System.out.println(jsonElement.toString());
System.out.println(jsonElement.getAsString());
jsonElement = new JsonPrimitive(42);
System.out.println(jsonElement.toString());
System.out.println(jsonElement.getAsString());
jsonElement = new JsonPrimitive(true);
System.out.println(jsonElement.toString());
System.out.println(jsonElement.getAsString());
jsonElement = new JsonObject();
((JsonObject) jsonElement).addProperty("foo", "bar");
((JsonObject) jsonElement).addProperty("foo2", 42);
System.out.println(jsonElement.toString());
System.out.println(jsonElement.getAsString());
}
}
Вывод:
"foo"
foo
42
42
true
true
{"foo":"bar","foo2":42}
Exception in thread "main" java.lang.UnsupportedOperationException: JsonObject
at com.google.gson.JsonElement.getAsString(JsonElement.java:185)
Как вы можете видеть, выход в некоторых случаях очень похож (или даже равен), но в некоторых других случаях он отличается. getAsString()
определяется только для примитивных типов (и массивов, содержащих только один примитивный элемент), и генерирует исключение, если оно вызвано, например. на объект. toString()
будет работать на всех типах JsonElement
.
Теперь, когда вы должны использовать какой метод?
toString()
getAsString()