
对比
准备数据
实体类:
定义:
使用DataContractJsonSerializer
帮助类:
用法:
输出:
使用JavaScriptSerializer
// using System.Web.Script.Serialization
var jser = new JavaScriptSerializer()
var json = jser.Serialize(new List<Person>() { p1, p2 })
var persons = jser.Deserialize<List<Person>>(json)
使用Silverlight
使用JSON.NET
输出:
LINQ:
其他:
输出:
1.
打开Kettle工具,创建转换 通过使用Kettle工具,创建一个转换json_extract,并添加“JSON input”控件、“表输出”控件以及Hop跳连接线。
2.
配置JSON文件输入控件 双击“JSON input”控件,进入“JSON输入”界面。 单击【浏览】按钮,选择要抽取的JSON文件json_extract.json单击【增加】按钮,将所选择的文件添加到“选中的文件和目录”处。 单击“字段”选项卡,添加要抽取的数据字段(这里采用分层抽取数据字段,先抽取id和data字段,再从data字段中抽取field和value字段)。 双击“JSON input 2”控件,进入“JSON输入”界面。 勾选“源定义在一个字段里?”的复选框在“从字段获取源”处的下拉框中选择字段名,即data。 单击“字段”选项卡添加从字段data中抽取的field和value字段。
3.
配置表输出控件 双击“表输出”控件,进入“表输出”配置界面。 单击【新建】按钮,配置数据库连接,配置完成后单击【确认】按钮。 单击目标表右侧的【浏览】按钮,选择输出的目标表,即数据表json勾选“指定数据库字段”的复选框,用于将数据表json的字段与JSON文件json_extract.json中的字段进行匹配。 单击“数据库字段”选项卡,再单击【输入字段映射】按钮,d出“映射匹配”对话框,将“源字段”选项框的字段和“目标字段”选项框对应的字段进行映射匹配。 “表输出”控件配置的最终效果。
4.
运行转换json_extract 单击转换工作区顶部的 按钮,运行创建的json_extract转换。
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
}
将获取到的字符串,入库即可。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)