java Json/xml/properties檔案處理
阿新 • • 發佈:2018-12-21
文章目錄
1. json檔案處理
json字串格式化可以使用jsonviewer工具檢視。有時候,自己在寫json串的時候,很容易缺少一個}或是其他配對的符號,該工具可以檢查串是否符合josn格式。且工具比較小
java 處理方面包括如下幾種方法:
型別 | 簡介 |
---|---|
傳統Json方式 | 複雜的Json資料轉換成實體類存在缺陷,效能和功能不夠完善 |
Jackson方式 | 複雜的Json資料轉換成實體類存在缺陷,效能和功能優於傳統方式 |
Gson方式 | 功能方面在幾種方式中最優,效能方面不如Jackson方式 |
FastJson方式 | 複雜的實體類轉換成Json資料存在缺陷,解析json的速度優於其他方式 |
下面主要介紹gson和jackson
1.1 使用gson讀取解析json配置檔案
使用gson需要匯入gson-XX.jar包。使用gson讀取解析json比較簡單。
基本步驟:
- 定義一個簡單java 物件,該物件需要和json層次結構基本和json串基本符合。
class Configuration{
int initDelay;
String type
ArrayList <Metrics > metricsList;
}
class Metrics{
.....
}
- 從檔案或其他地方獲取json字串(存入到String dataString變數中),解析:
gson gson=new Gson(); Configuration config=gson.fromJson(dataString,Configuration.class);
1.2 Jackson將Java物件轉成json字串
直接使用jackson將java類序列化成字串
ObjectMapper mapper = new ObjectMapper();
String json = mapper.writeValueAsString(config);
常用註解:
註解名 | 作用 |
---|---|
@JsonIgnore | 此註解用於屬性上,作用是進行JSON操作時忽略該屬性。 |
@JsonFormat | 此註解用於屬性上,作用是把Date型別直接轉化為想要的格式,如@JsonFormat(pattern = “yyyy-MM-dd HH-mm-ss”)。 |
@JsonProperty | 預設情況下對映的JSON屬性與註解的屬性名稱相同。此註解用於屬性上,作用是把該屬性的名稱序列化為另外一個名稱,如把trueName屬性序列化為name,@JsonProperty(“name”)。 |
2.解析properties檔案
直接使用java的Properties類來處理
基本處理程式碼:
String fileName="test.properties"
Properties prop =new Properties();
try( InputStream stream =new BufferedInputStream(new FileInputStream(fileName ){
prop.load(stream);
}catch(Exception e){
return false;
}
Iterator<String> it=prop.stringPropertyNames().iterator();
while(it.hasNext()){
//處理每個key
....
}