如何将json数据转化为数据库文件

如何将json数据转化为数据库文件,第1张

从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 = JSONArray.fromObject(str)

Long[] arr=new Long[jsonArray.size()]

for(int i=0i<jsonArray.size()i++){

arr[i]=jsonArray.getLong(i)

System.out.println(arr[i])

}

return arr

}

/**

* 将json数组转化为String型

* @param str

* @return

*/

public static String[] getJsonToStringArray(String str) {

JSONArray jsonArray = JSONArray.fromObject(str)

String[] arr=new String[jsonArray.size()]

for(int i=0i<jsonArray.size()i++){

arr[i]=jsonArray.getString(i)

System.out.println(arr[i])

}

return arr

}

/**

* 将json数组转化为Double型

* @param str

* @return

*/

public static Double[] getJsonToDoubleArray(String str) {

JSONArray jsonArray = JSONArray.fromObject(str)

Double[] arr=new Double[jsonArray.size()]

for(int i=0i<jsonArray.size()i++){

arr[i]=jsonArray.getDouble(i)

}

return arr

}

/**

* 将json数组转化为Date型

* @param str

* @return

*/

public static Date[] getJsonToDateArray(String jsonString) {

JSONArray jsonArray = JSONArray.fromObject(jsonString)

Date[] dateArray = new Date[jsonArray.size()]

String dateString

Date date

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

for (int i = 0i <jsonArray.size()i++) {

dateString = jsonArray.getString(i)

try {

date=sdf.parse(dateString)

dateArray[i] = date

} catch (Exception e) {

e.printStackTrace()

}

}

return dateArray

}

public static void main(String[] args) {

JSONArray jsonLongs = new JSONArray()

jsonLongs.add(0, "111")

jsonLongs.add(1, "222.25")

jsonLongs.add(2, new Long(333))

jsonLongs.add(3, 444)

Long[] log=getJsonToLongArray(jsonLongs.toString())

for(int i=0i<log.lengthi++){

System.out.println(log[i])

}

JSONArray jsonStrs = new JSONArray()

jsonStrs.add(0, "2011-01-01")

jsonStrs.add(1, "2011-01-03")

jsonStrs.add(2, "2011-01-04 11:11:11")

Date[] d=getJsonToDateArray(jsonStrs.toString())

for(int i=0i<d.lengthi++){

System.out.println(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

*/

直接输出就可以了 String jsondata = "{'a':" + a + ",'b':" + b + ",'c':" + c + "}"如果abc是字符串就加上单引号,如 String jsondata = "{'a':'" + a + "','b':'" + b + "','c':'" + c + "'}"如果abc是数组 String jsondata = "{'a':[" + a[0] + "," + a[1] + "," + a[2] + "],'b':...}" 如果abc是对象就相对复杂一点 String jsondata = "{'a':{'a_paramStr':'" + a.paramStr + "','a_pramaInt'}:a.pramaInt},'b':...}"当然,如果对象的成员变量很多,可以可以通过对象遍历的方式输出,还有包含子对象、子子对象的情况 总结如下 格式:{'数据名':数据值} 数据值为数字时,直接输出 数据值为字符串时,用单引号包含值,'数据值' 数据值为数组时,用中括号包含,[数据值1,数据值2,...] 数据值为对象时,用大括号包含,{'成员名1':成员数值1,'成员名2':{'成员2对象的成员1','成员2对象的成员1值'},...} 数据与数据之间用逗号隔开,以上 一句话,如果传送数据很简单可以自己输出如果很复杂,乖乖用三方json包吧,我真不懂为什么抗拒别人做的车轮

直接varchar或者text之类的类型即可插入。在Mysql5.7或以上可以支持JSON数据类型。其他的数据库你可以参考他的不同版本,考虑是否支持JSON数据类型,如果不支持就用字符串类型。但是要考虑长度。

PS:如果是用客户端链接,那么就算数据库支持,那客户端也得是最新版支持JSON的,要不然数据库支持,工具以为不支持!


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

原文地址: https://outofmemory.cn/sjk/6762932.html

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

发表评论

登录后才能评论

评论列表(0条)

保存