收到的JSON数据,怎么批量插入到数据库

收到的JSON数据,怎么批量插入到数据库,第1张

net 环境 调用 NewtownJson 类库,自己建立符合json对象格式的json属性声明,然后反序列化。把获得的具体对应列、值改写成SQL语言 在调用数据库类库中 执行这些SQL语句;

net类库 可以更便捷的调用EntityFramework 直接将对象写入数据库

php环境需要json_decode()转为对象或数组 再取回具体值 改写为SQL语句,然后执行这些SQL

从json数组中得到java数组,可以对该数组进行转化,如将JSONArray转化为String型、Long型、Double型、Integer型、Date型等等。

分别采用jsonArray下的getString(index)、getLong(index)、getDouble(index)、getInt(index)等方法。

同样,如果要获取java数组中的元素,只需要遍历该数组。

Java代码 收藏代码

/

将json数组转化为Long型

@param str

@return

/

public static Long[] getJsonToLongArray(String str) {

JSONArray jsonArray = JSONArrayfromObject(str);

Long[] arr=new Long[jsonArraysize()];

for(int i=0;i<jsonArraysize();i++){

arr[i]=jsonArraygetLong(i);

Systemoutprintln(arr[i]);

}

return arr;

}

/

将json数组转化为String型

@param str

@return

/

public static String[] getJsonToStringArray(String str) {

JSONArray jsonArray = JSONArrayfromObject(str);

String[] arr=new String[jsonArraysize()];

for(int i=0;i<jsonArraysize();i++){

arr[i]=jsonArraygetString(i);

Systemoutprintln(arr[i]);

}

return arr;

}

/

将json数组转化为Double型

@param str

@return

/

public static Double[] getJsonToDoubleArray(String str) {

JSONArray jsonArray = JSONArrayfromObject(str);

Double[] arr=new Double[jsonArraysize()];

for(int i=0;i<jsonArraysize();i++){

arr[i]=jsonArraygetDouble(i);

}

return arr;

}

/

将json数组转化为Date型

@param str

@return

/

public static Date[] getJsonToDateArray(String jsonString) {

JSONArray jsonArray = JSONArrayfromObject(jsonString);

Date[] dateArray = new Date[jsonArraysize()];

String dateString;

Date date;

SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");

for (int i = 0; i < jsonArraysize(); i++) {

dateString = jsonArraygetString(i);

try {

date=sdfparse(dateString);

dateArray[i] = date;

} catch (Exception e) {

eprintStackTrace();

}

}

return dateArray;

}

public static void main(String[] args) {

JSONArray jsonLongs = new JSONArray();

jsonLongsadd(0, "111");

jsonLongsadd(1, "22225");

jsonLongsadd(2, new Long(333));

jsonLongsadd(3, 444);

Long[] log=getJsonToLongArray(jsonLongstoString());

for(int i=0;i<loglength;i++){

Systemoutprintln(log[i]);

}

JSONArray jsonStrs = new JSONArray();

jsonStrsadd(0, "2011-01-01");

jsonStrsadd(1, "2011-01-03");

jsonStrsadd(2, "2011-01-04 11:11:11");

Date[] d=getJsonToDateArray(jsonStrstoString());

for(int i=0;i<dlength;i++){

Systemoutprintln(d[i]);

}

}

/结果如下:

111

222

333

444

Sat Jan 01 00:00:00 CST 2011

Mon Jan 03 00:00:00 CST 2011

Tue Jan 04 00:00:00 CST 2011

/

把json字符串存入数据库,如果数据库里面存储的字段是字符串类型或者text的话是可以直接存入的。

例如:

$sql = "insert into tablename (fieldname) values ('$jsondata')";

mysql_query($sql);

这样就好了。

直接读写文件,再把读出来的文件内容格式化成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) {

thisxueqi = xueqi;

}

public String getXuenian() {

return xuenian;

}

public void setXuenian(String xuenian) {

thisxuenian = xuenian;

}

public String getStartTime() {

return startTime;

}

public void setStartTime(String startTime) {

thisstartTime = startTime;

}

public String getEndTime() {

return endTime;

}

public void setEndTime(String endTime) {

thisendTime = endTime;

}

public int getMenshu() {

return menshu;

}

public void setMenshu(int menshu) {

thismenshu = menshu;

}

public String getIsReadDB() {

return isReadDB;

}

public void setIsReadDB(String isReadDB) {

thisisReadDB = isReadDB;

}

}

有一个json格式的文件,存的信息如下:

Setsjson:

{"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=JSONObjectfromObject(sets);//格式化成json对象

//Systemoutprintln("------------" jo);

//String name = jogetString("xuenian");

//Systemoutprintln(name);

electsetsetXueqi(jogetString("xueqi"));

electsetsetXuenian(jogetString("xuenian"));

electsetsetStartTime(jogetString("startTime"));

electsetsetEndTime(jogetString("endTime"));

electsetsetMenshu(jogetInt("menshu"));

electsetsetIsReadDB(jogetString("isReadDB"));

return electset;

}

//设置属性,并保存

public boolean setElect(String path,String sets){

try {

writeFile(path,sets);

return true;

} catch (IOException e) {

// TODO Auto-generated catch block

eprintStackTrace();

return false;

}

}

//读文件,返回字符串

public String ReadFile(String path){

File file = new File(path);

BufferedReader reader = null;

String laststr = "";

try {

//Systemoutprintln("以行为单位读取文件内容,一次读一整行:");

reader = new BufferedReader(new FileReader(file));

String tempString = null;

int line = 1;

//一次读入一行,直到读入null为文件结束

while ((tempString = readerreadLine()) != null) {

//显示行号

Systemoutprintln("line " line ": " tempString);

laststr = laststr tempString;

line ;

}

readerclose();

} catch (IOException e) {

eprintStackTrace();

} finally {

if (reader != null) {

try {

readerclose();

} catch (IOException e1) {

}

}

}

return laststr;

}

将获取到的字符串,入库即可。

<script language="jscript" runat="server">  

Arrayprototypeget = function(x) { return this[x]; };  

function parseJSON(strJSON) { return eval("(" + strJSON + ")"); }  

</script>  

<%  

Dim json, obj  

json = "{a:""aaa"", b:{ name:""bb"", value:""text"" }, c:[""item0"", ""item1"", ""item2""]}"  

Set obj = parseJSON(json)    

ResponseWrite obja & "<br />"  '直接获取

ResponseWrite objbname & "<br />"  '获取指定key

ResponseWrite objclength & "<br />"  '获取条数

ResponseWrite objcget(0) & "<br />" 'C的第一条 

ResponseWrite objc & "<br />"  '获取全部

Set obj = Nothing  

%>

然后就是对应的更新到数据库就行了。

建议让JSON,整条的保存在数据库,取出来的时候这样解释就行了。。。

以上就是关于收到的JSON数据,怎么批量插入到数据库全部的内容,包括:收到的JSON数据,怎么批量插入到数据库、如何将json数据转化为数据库文件、php存入数据库 如何将json格式的数据直接存入mysql数据库等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10205268.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存