分别采用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的,要不然数据库支持,工具以为不支持!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)