本文目錄一覽:
java怎麼讀取json格式的數據
你好,Java讀取json數據格式,你只需要使用JsonStore 等等工具包即可進行便捷的讀取了。代碼比較簡單,通俗易懂,具體JsonStore可以百度一下詳細信息。
java解析json格式文件,再保存在資料庫怎麼做?
java解析json格式文件,再保存在資料庫的方法:
1:定義一個實體類
2:用json lib將json字元串轉為Java對象
3:用jdbc或hibernate將java對象存入資料庫
直接讀寫文件,再把讀出來的文件內容格式化成json,再用JDBC、Mybatis或者其他框架將json數據存入資料庫。
假設實體類是這樣的:
public class ElectSet {
public String xueqi;
public String xuenian;
public String startTime;
public String endTime;
public int menshu;
public String isReadDB;
//{“xueqi”:,”xuenian”:,”startTime”:,”endTime”:,”renshu”:,”isReadDB”:}
public String getXueqi() {
return xueqi;
}
public void setXueqi(String xueqi) {
this.xueqi = xueqi;
}
public String getXuenian() {
return xuenian;
}
public void setXuenian(String xuenian) {
this.xuenian = xuenian;
}
public String getStartTime() {
return startTime;
}
public void setStartTime(String startTime) {
this.startTime = startTime;
}
public String getEndTime() {
return endTime;
}
public void setEndTime(String endTime) {
this.endTime = endTime;
}
public int getMenshu() {
return menshu;
}
public void setMenshu(int menshu) {
this.menshu = menshu;
}
public String getIsReadDB() {
return isReadDB;
}
public void setIsReadDB(String isReadDB) {
this.isReadDB = isReadDB;
}
}
有一個json格式的文件,存的信息如下:
Sets.json:
{“xuenian”:”2007-2008″,”xueqi”:”1″,”startTime”:”2009-07-19 08:30″,”endTime”:”2009-07-22 18:00″,”menshu”:”10″,”isReadDB”:”Y”}
具體操作:
/*
* 取出文件內容,填充對象
*/
public ElectSet findElectSet(String path){
ElectSet electset=new ElectSet();
String sets=ReadFile(path);//獲得json文件的內容
JSONObject jo=JSONObject.fromObject(sets);//格式化成json對象
//System.out.println(“————” jo);
//String name = jo.getString(“xuenian”);
//System.out.println(name);
electset.setXueqi(jo.getString(“xueqi”));
electset.setXuenian(jo.getString(“xuenian”));
electset.setStartTime(jo.getString(“startTime”));
electset.setEndTime(jo.getString(“endTime”));
electset.setMenshu(jo.getInt(“menshu”));
electset.setIsReadDB(jo.getString(“isReadDB”));
return electset;
}
//設置屬性,並保存
public boolean setElect(String path,String sets){
try {
writeFile(path,sets);
return true;
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return false;
}
}
//讀文件,返回字元串
public String ReadFile(String path){
File file = new File(path);
BufferedReader reader = null;
String laststr = “”;
try {
//System.out.println(“以行為單位讀取文件內容,一次讀一整行:”);
reader = new BufferedReader(new FileReader(file));
String tempString = null;
int line = 1;
//一次讀入一行,直到讀入null為文件結束
while ((tempString = reader.readLine()) != null) {
//顯示行號
System.out.println(“line ” line “: ” tempString);
laststr = laststr tempString;
line ;
}
reader.close();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (reader != null) {
try {
reader.close();
} catch (IOException e1) {
}
}
}
return laststr;
}
將獲取到的字元串,入庫即可。
JAVA 實體類里有實體類 怎麼用json全部得到
你的意思是 通過一個類名 去獲取他的屬性的類? 這個可以通過反射來實現 存入到JSONObject裡面
如果是通過一個實體類去獲取他的屬性實體類就更簡單了。實體類裡面提供了 get set方法的話
你就可以直接去get 屬性類 存放到JSONObject裡面
不過使用JSON需要導入幾個包,導入少了會報錯 …
求java合併json數據的代碼
我想了一下,但是得有一個前提,就是第一個json數組的size必須和第二個json數組的size相同,並且一一對應,否則將造成數組溢出。
如果是基於上面這個前提,那麼實現的方法就簡單了。
操作json對象,其實標準的方法是將實體類轉換成json後再操作,我這裡的話為了便捷直接使用谷歌的Gson來創建JsonObject了,其他的json依賴還有阿里巴巴的FastJson等等,看你平時用什麼習慣。
引入Gson依賴:
dependency
groupIdcom.google.code.gson/groupId
artifactIdgson/artifactId
version2.8.0/version
/dependency
實現代碼:
public class Main {
public static void main(String[] args) {
JsonArray jsonArray1 = new JsonArray();
JsonObject json11 = new JsonObject();
json11.addProperty(“數據1”, “0000”);
json11.addProperty(“數據2”, “1111”);
JsonObject json12 = new JsonObject();
json12.addProperty(“數據1”, “0000”);
json12.addProperty(“數據2”, “1111”);
JsonObject json13 = new JsonObject();
json13.addProperty(“數據1”, “0000”);
json13.addProperty(“數據2”, “1111”);
jsonArray1.add(json11);
jsonArray1.add(json12);
jsonArray1.add(json13);
System.out.println(jsonArray1);
JsonArray jsonArray2 = new JsonArray();
JsonObject json21 = new JsonObject();
json21.addProperty(“數據3”, “6666”);
JsonObject json22 = new JsonObject();
json22.addProperty(“數據3”, “6666”);
JsonObject json23 = new JsonObject();
json23.addProperty(“數據3”, “6666”);
jsonArray2.add(json21);
jsonArray2.add(json22);
jsonArray2.add(json23);
System.out.println(jsonArray2);
//遍歷json數組,按位取出對象
for (int i = 0; i jsonArray1.size(); i++) {
JsonObject json1 = jsonArray1.get(i).getAsJsonObject();
JsonObject json3 = jsonArray2.get(i).getAsJsonObject();
//遍曆數據3內容,通過Entry獲取數據3的key和value,併合併到數據1中
for (Map.EntryString, JsonElement item : json3.entrySet()) {
json1.addProperty(item.getKey(), item.getValue().getAsString());
}
}
System.out.println(jsonArray1);
}
}
整體思路為:遍歷兩個json數組,按位進行合併操作。合併時,遍曆數據3的jsonObject,獲取其key和value,並將其合併到數據1中即可。
運行結果:
原創文章,作者:QPIMK,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/127809.html