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数据库等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)