Java中處理JSON數(shù)據(jù)使用的是一種名為JSON-lib的開源庫。JSON-lib提供了便捷的API來將JSON數(shù)據(jù)和Java對象相互轉(zhuǎn)換。
當(dāng)處理JSON數(shù)據(jù)時(shí),UTF-8是一種常用的字符編碼,它能夠覆蓋世界上大部分的字符集。在Java中,要處理UTF-8編碼的JSON數(shù)據(jù),需要設(shè)置字符集為UTF-8,否則可能會出現(xiàn)亂碼或錯(cuò)誤數(shù)據(jù)的情況。
String jsonStr = "{\"name\": \"張三\", \"age\": 20}"; JSONObject jsonObject = JSONObject.fromObject(jsonStr); System.out.println(jsonObject.getString("name"));
代碼中,使用JSONObject.fromObject()方法將JSON字符串轉(zhuǎn)換為JSONObject對象。如果JSON數(shù)據(jù)中存在中文字符,需要在代碼中設(shè)置字符集為UTF-8:
String jsonStr = "{\"name\": \"張三\", \"age\": 20}"; JSONObject jsonObject = JSONObject.fromObject(new String(jsonStr.getBytes("UTF-8"), "UTF-8")); System.out.println(jsonObject.getString("name"));
如果需要將JSON數(shù)據(jù)轉(zhuǎn)換為Java對象,則需要使用JSON-lib提供的BeanUtil類。例如:
String jsonStr = "{\"name\": \"張三\", \"age\": 20}"; JSONObject jsonObject = JSONObject.fromObject(jsonStr); Person person = (Person) JSONObject.toBean(jsonObject, Person.class); System.out.println(person.getName());
代碼中,使用了JSONObject.toBean()方法將JSONObject對象轉(zhuǎn)換為Java對象,其中第二個(gè)參數(shù)是轉(zhuǎn)換的目標(biāo)對象類型。在使用toBean()方法時(shí),也需要設(shè)置字符集為UTF-8,否則可能會影響結(jié)果。