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文件可以直接导入数据库吗的主要内容,如果未能解决你的问题,请参考以下文章

MYSQL数据库的备份问题,直接复制可以吗?

安卓unity解包后的文件能导入到unity吗,导入后可以直接运行的?

Redis 数据库导出/导入 [关闭]

能否直接想sql表中直接导入dbf文档,以及能否直接导出成dbf的文档

导入dump包时表结构会自动导入吗

我可以直接将 .sql 文件导入 XAMPP 安装吗