本文目錄一覽:
- 1、java解析json格式文件,再保存在資料庫怎麼做?
- 2、java中Json怎樣解析數據?
- 3、用java解析json 格式的字元.該如何解析
- 4、java 解析json字元串
- 5、java解析json格式文件
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怎樣解析數據?
你這個JSON格式,就是數組裡面放數組,所以是,取JSON對象》取JSON數組data》取JSON數組。
import java.util.ArrayList;import java.util.Iterator;import net.sf.json.*;public class MainClass {/*** @param args*/public static void main(String[] args) {JSONObject jsonObj = JSONObject.fromObject(JsonData.getData());JSONArray jsonArr = jsonObj.getJSONArray(“data”);IteratorJSONArray itr = jsonArr.iterator();JSONArray temp;while(itr.hasNext()) {temp = itr.next();System.out.println(“===========Each JSONArray=========”);for(int i = 0; itemp.size(); i++) {System.out.println(temp.get(i));}}}private static class JsonData {private static String getData() {return “{\”data\”:[[5000235,2,3441,8,17,\”北京測試\”,\”10000101111\”,\”\”,\”\”,\”100001\”,\”\”,\”2011-09-23 17:20:07\”,18,\”vhcDefaultPwd\”,1,0,\”2011-09-20 00:00:00\”,12,0,380,\”測試\”,213,1,0,0,0,0,0,\”2012-11-05 14:35:23\”,\”\”],[5000236,27,3442,10,17,\”北京測試2\”,\”1230000\”,\”\”,\”\”,\”2010920002\”,\”111111\”,\”2011-09-23 17:20:08\”,18,\”vhcDefaultPwd\”,1,0,\”2011-09-20 00:00:00\”,12,0,380,\”測試2\”,213,1,0,0,0,0,0,\”2012-11-05 14:35:23\”,\”\”]]}”;}}}
用java解析json 格式的字元.該如何解析
String temp=”{‘data’:{‘a’:[{‘b1′:’bb1′,’c1′:’cc1’},{‘b2′:’bb2′,’c2′:’cc2’}]}}”;
JSONObject jodata =JSONObject.fromObject(temp);
JSONObject joa =JSONObject.fromObject(jodata.get(“data”).toString());
JSONArray ja=JSONArray.fromObject(joa.get(“a”));
for(int i=0;ija.size();i++){
JSONObject o=ja.getJSONObject(i);
if(o.get(“b1”)!=null){
System.out.println(o.get(“b1”));
}
if(o.get(“c1”)!=null){
System.out.println(o.get(“c1”));
}
if(o.get(“b2”)!=null){
System.out.println(o.get(“b2”));
}
if(o.get(“c2”)!=null){
System.out.println(o.get(“c2”));
}
}
}
註:要包含兩個jar包ezmorph-1.0.6.jar和json-lib-2.2.2-jdk15.jar,jar包在附件中
java 解析json字元串
你好:
後台拆分json
private String interactPrizeAll; //json 使用字元串來接收
方法中的代碼:
Gson gson = new Gson();
InteractPrize interactPrize =new InteractPrize();
//gson用泛型 轉List數組 多個對象
ListInteractPrize interactPrizeList = gson.fromJson(interactPrizeAll, new TypeTokenListInteractPrize(){}.getType()); //TypeToken,它是gson提供的數據類型轉換器,可以支持各種數據集合類型轉換
for(int i = 0; i interactPrizeList.size(); i++)
{
interactPrize = interactPrizeList.get(i);//獲取每一個對象
}
這一種方法是轉單個對象時使用的
//gson 轉對象 單個對象
//interactPrize = gson.fromJso(interactPrizeAll,InteractPrize.class);
這個方法是我後台拼的json往前台傳的方法
jsonStrAll.append(“{“+ “\””+”catid”+”\””+”:”+”\””+c.getCatid()+”\””+”,”+”\””+”catname”+”\””+”:”+”\””+c.getCatname()+”\””+”,”+ “\””+”catdesc”+”\””+”:”+”\””+c.getCatdesc()+”\””+”,”+”\””+”showinnav”+”\””+”:”+”\””+c.getShowinnav()+”\””+”,”+”\””+”sortorder”+”\””+”:”+”\””+c.getSortorder()+”\””+”,”+”level:”+”\””+”0″+”\””+”,parent:”+”\””+”0″+”\””+”,isLeaf:true,expanded:false,”+”loaded:true},”);
你自己挑著用吧!
java解析json格式文件
/*簡單的回了複雜的也就會了*/
/*其實,json實際上是用來統一數據格式,所以,在使用它時,肯定要設計一下格式,
當然,所謂的複雜,只是嵌套的層次深了。。。解析方式並沒有變。。個人理解,如果覺得有價值就看,沒價值,就當沒看見吧。。
呵呵。。
*/
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import net.sf.ezmorph.bean.MorphDynaBean;
import net.sf.json.JSONArray;
import net.sf.json.JSONSerializer;
/**
* @author John
*
*/
public class JSONDemo {
public static final String PREFIX = “index_”;
/**
* @param args
*/
public static void main(String[] args) {
Map map = new HashMap();
String str =”[{‘status’: 5,’remarks’: ‘\\xe6\\xa3\\x80\\xe6\\xb5\\x8b\\xe5\\xb7\\xb2\\xe7\\xbb\\x8f\\xe5\\xae\\x8c\\xe6\\x88\\x90′,’session’: \”(1, ‘9.2.0.1.0’, ‘192.168.177.115’, 1521L, ‘ora9′, 1, ”)\”,’vuls’: [\”(‘612300200001’, 1, ”, [{‘values’: ‘[‘version’]’, ‘type’: 0}, {‘values’: \'[‘%E7%89%88%E6%9C%AC%E5%8F%B7′]\’, ‘type’: 1}])\”,\”(‘612300200002’, 1, ”, [{‘values’: ‘[‘version’]’, ‘type’: 0},{‘values’: ‘[‘%E7%89%88%E6%9C%AC%E5%8F%B7′]’, ‘type’: 1},{‘values’: ‘[‘9.2.0.1.0′]’, ‘type’: 2}])\”], ‘endTime’:123}, 1L, ‘\\xe6\\xb5\\x8b\\xe8\\xaf\\x95\\xe6\\x89\\xab\\xe6\\x8f\\x8f\\xe4\\xbb\\xbb\\xe5\\x8a\\xa1’]”;
System.out.println(“json格式字元串–“+str);
JSONArray array = JSONArray.fromObject(str);
System.out.println(“json格式字元串構造json數組元素的個數–“+array.size());
ArrayList list = (ArrayList) JSONSerializer.toJava(array);
int i = 0;
for (Object obj : list) {
map.put(PREFIX+(i++), obj);
System.out.println(“第”+i+”對象–“+obj);
}
//解析第0個位置
Map bd = new HashMap();
MorphDynaBean bean = (MorphDynaBean) map.get(PREFIX+0);
bd.put(“session”, bean.get(“session”));
bd.put(“status”, bean.get(“status”));
bd.put(“remarks”, bean.get(“remarks”));
bd.put(“vuls”, bean.get(“vuls”));
bd.put(“endTime”, bean.get(“endTime”));
Iterator iter = bd.keySet().iterator();
while (iter.hasNext()){
Object key = iter.next();
Object value = bd.get(key);
System.out.println(“MorphDynaBean對象–key=”+key+”,value=”+value);
}
//解析vuls
ArrayList vuls = (ArrayList) bd.get(“vuls”);
Map vl = new HashMap();
int j = 0;
for (Object obj : vuls) {
vl.put(PREFIX+(j++), obj);
System.out.println(“解析vuls的第”+i+”對象–“+obj);
}
}
}
/*
* json格式字元串–[{‘status’: 5,’remarks’: ‘\xe6\xa3\x80\xe6\xb5\x8b\xe5\xb7\xb2\xe7\xbb\x8f\xe5\xae\x8c\xe6\x88\x90′,’session’: “(1, ‘9.2.0.1.0’, ‘192.168.177.115’, 1521L, ‘ora9′, 1, ”)”,’vuls’: [“(‘612300200001’, 1, ”, [{‘values’: ‘[‘version’]’, ‘type’: 0}, {‘values’: ‘[‘%E7%89%88%E6%9C%AC%E5%8F%B7′]’, ‘type’: 1}])”,”(‘612300200002’, 1, ”, [{‘values’: ‘[‘version’]’, ‘type’: 0},{‘values’: ‘[‘%E7%89%88%E6%9C%AC%E5%8F%B7′]’, ‘type’: 1},{‘values’: ‘[‘9.2.0.1.0′]’, ‘type’: 2}])”], ‘endTime’:123}, 1L, ‘\xe6\xb5\x8b\xe8\xaf\x95\xe6\x89\xab\xe6\x8f\x8f\xe4\xbb\xbb\xe5\x8a\xa1’]
json格式字元串構造json數組元素的個數–3
第1對象–net.sf.ezmorph.bean.MorphDynaBean@94948a[
{session=(1, ‘9.2.0.1.0’, ‘192.168.177.115’, 1521L, ‘ora9’, 1, ”), status=5, remarks=???????·??????????, vuls=[(‘612300200001’, 1, ”, [{‘values’: ‘[‘version’]’, ‘type’: 0}, {‘values’: ‘[‘%E7%89%88%E6%9C%AC%E5%8F%B7′]’, ‘type’: 1}]), (‘612300200002’, 1, ”, [{‘values’: ‘[‘version’]’, ‘type’: 0},{‘values’: ‘[‘%E7%89%88%E6%9C%AC%E5%8F%B7′]’, ‘type’: 1},{‘values’: ‘[‘9.2.0.1.0′]’, ‘type’: 2}])], endTime=123}
]
第2對象–1L
第3對象–???è??????????????
MorphDynaBean對象–key=status,value=5
MorphDynaBean對象–key=session,value=(1, ‘9.2.0.1.0’, ‘192.168.177.115’, 1521L, ‘ora9’, 1, ”)
MorphDynaBean對象–key=remarks,value=???????·??????????
MorphDynaBean對象–key=vuls,value=[(‘612300200001’, 1, ”, [{‘values’: ‘[‘version’]’, ‘type’: 0}, {‘values’: ‘[‘%E7%89%88%E6%9C%AC%E5%8F%B7′]’, ‘type’: 1}]), (‘612300200002’, 1, ”, [{‘values’: ‘[‘version’]’, ‘type’: 0},{‘values’: ‘[‘%E7%89%88%E6%9C%AC%E5%8F%B7′]’, ‘type’: 1},{‘values’: ‘[‘9.2.0.1.0′]’, ‘type’: 2}])]
MorphDynaBean對象–key=endTime,value=123
解析vuls的第3對象–(‘612300200001’, 1, ”, [{‘values’: ‘[‘version’]’, ‘type’: 0}, {‘values’: ‘[‘%E7%89%88%E6%9C%AC%E5%8F%B7′]’, ‘type’: 1}])
解析vuls的第3對象–(‘612300200002’, 1, ”, [{‘values’: ‘[‘version’]’, ‘type’: 0},{‘values’: ‘[‘%E7%89%88%E6%9C%AC%E5%8F%B7′]’, ‘type’: 1},{‘values’: ‘[‘9.2.0.1.0′]’, ‘type’: 2}])
*/
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/297849.html