我想將字符串{"a": 1.0}
讀作通用Java對象,同時保持相同的字符串格式。但是,當我嘗試時,傑克遜自動將內部表示更改爲{a = 1}
。換句話說,我如何得到下面的代碼來打印{"a": 1.0}
而不是{a = 1}
?請注意,我必須將其作爲Object
讀取(由於其他程序限制)。傑克遜與Java中的通用對象序列化
import org.codehaus.jackson.map.ObjectMapper;
public class Main {
public static void main(String[] args) {
try
{
ObjectMapper mapper = new ObjectMapper();
Object myObject = mapper.readValue("{\"a\": 1.0}", Object.class);
System.out.println(myObject.toString());
}
catch (Exception e)
{
e.printStackTrace();
System.err.println(e.getMessage());
}
}
}
這對我沒有意義。對象沒有關鍵字「a」的任何屬性,那麼它如何被讀入?你不需要用這個屬性創建一個類嗎? – 2011-02-14 16:44:24
也許他假設傑克遜以某種方式心靈感應地指出預期的類型...實際發生的是類型Object.class對Jackson有特殊的處理:它會創建映射,列表和包裝類型的「自然」映射(這些都是明顯的對象) – StaxMan 2011-02-14 20:06:10