以前在Java開發中,需要處理JSON,我們大多會使用手工構造JSON字符串的方式,效率低、易出錯。但是,使用Jackson庫我們可以更加高效便捷地處理JSON。
在Jackson中,我們可以通過ObjectMapper.readValue()方法將JSON反序列化為Java對象。而對于一個JSON數組,我們可以通過以下代碼將其轉為List類型:
ObjectMapper mapper = new ObjectMapper(); String jsonArray = "[{\"name\":\"張三\",\"age\":20},{\"name\":\"李四\",\"age\":25}]"; List<User> userList = mapper.readValue(jsonArray, new TypeReference<List<User>>(){});
上述代碼中,我們首先實例化了一個ObjectMapper對象,然后定義了一個JSON數組字符串,接著使用mapper.readValue()方法將其轉為List<User>類型。
注意,在讀取list的json數據時,我們需要借助TypeReference類,來指明泛型的類型,這里我們指明要轉為List<User>類型,而不是List<Map>或其他類型。使用泛型可以保證反序列化的對象類型的正確性,避免類型轉換異常。
當然,如果你的json字符串中包含的是簡單類型,而不含有對象或數組結構的話,可以直接使用數組去接收json數據:
ObjectMapper mapper = new ObjectMapper(); String jsonArray = "[\"張三\",\"李四\"]"; String[] nameArray = mapper.readValue(jsonArray, String[].class);
上述代碼中,我們使用了String[]數組類型去接收json字符串,而不是List<String>類型,這個也是可以的。
Jackson提供了非常方便的API,使得JSON的處理變得非常簡單快捷,迅速讓我們從手工解析JSON的復雜工作中解放出來!
上一篇vue怎么創建標簽