json文件可以直接导入数据库吗
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了json文件可以直接导入数据库吗相关的知识,希望对你有一定的参考价值。
直接读写文件,再把读出来的文件内容格式化成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;
将获取到的字符串,入库即可。 参考技术A 终南望余雪(祖咏)
在mongodb集合中导入json吗?
我想在MongoDB集合中将.json文件作为字段导入,其中导入的数据实际上可以用作带有字段标签的子文档。这可能吗?我将Django用于我的Web框架和文件上传。
现在,数据模型在Django中看起来像这样:
class Trip(models.Model):
name = models.CharField(max_length = 120)
file = models.FileField(upload_to = 'trips/files/', null = True, blank = True)
我希望“文件”字段为.json导入,将子字段读入文档;在Mongo中,数据模型如下所示:
"_id":
"$oid": "5e18e9b0593b827d141e9c6d"
,
"name": "f"
"file":
"field1": "asdf"
"field2": 1234
"field3":
"fieldA": "3"
"fieldB": "876"
其中“文件”下的字段在导入的.json文件中。显然,真正的json会更复杂,但这只是一个简单的示例。
[如果可能的话,请告诉我,能够导入这些.jsons并在Mongo中正确处理它们是我获得运行所需的一切。谢谢!
答案
PyMongo非常有用。它提供的insert_one()
功能与典型的mongo插入功能相同。请查阅文档here。您可能需要基于模型的功能。您还需要合并PyMongo要求才能利用它。
尝试一下:
import pymongo
client = pymongo.MongoClient("localhost:27017")
db = client.your_database #Database
col = db.your_collection #Collection
class Trip(models.Model):
name = models.CharField(max_length = 120)
file = models.FileField(upload_to = 'trips/files/', null = True, blank = True)
def insert_into_collection(self):
col.insert_one('uploaded_file':file)
以上是关于json文件可以直接导入数据库吗的主要内容,如果未能解决你的问题,请参考以下文章
安卓unity解包后的文件能导入到unity吗,导入后可以直接运行的?