Созданный объект будет картой (как и другие комментарии), поэтому его toString
создает то, что вы видите, {a = 1}
. Чтобы ваш код печатал что-то ближе к вашему входному значению, вам нужно использовать Джексона, чтобы записать его обратно с чем-то вроде:
System.out.println(mapper.writeValueAsString(myObject));
Это дает мне то, что, я полагаю, вы ищете:
{"a":1.0}
Другими словами, Джексон десериализовал вашу входную строку в произвольный объект Java. Когда вы вызываете toString
для объекта, его собственный toString
, конечно, используется. Это может написать объект как угодно, включая использование метода из Object
. Чтобы воспроизвести входную строку, вы должны использовать Джексона для сериализации нашего объекта обратно.