本文目錄一覽:
如何將json數據轉換為常見的數據格式
/**
* 將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=0;ijsonArray.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=0;ijsonArray.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=0;ijsonArray.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 = 0; i 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=0;ilog.length;i++){
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=0;id.length;i++){
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
*/
解決GSON轉Long型變為科學計數法或整形變double的問題(自動轉換成Double類型
假如有這麼個響應結果 ResponseT ,當不指定泛型 T 的時候,泛型T中的數據成員容易出現Long型變為科學計數法或整形變double,原因自行百度研究( ObjectTypeAdapter ),本文列出兩種解決方案即通過自定義Gson類型適配器,在json序列化或反序列化的時候處理
使用:
使用:
上面Gson設置也可以綜合起來,看實際需求定義
JSON 可以傳遞哪些數據類型
1、Number 在JavaScript中的雙精度浮點格式
2、String 雙引號的反斜杠轉義的Unicode
3、Boolean true 或 false
4、Array 值的有序序列
5、Value 它可以是一個字符串,一個數字,真的還是假(true/false),空(null )等
6、Object 無序集合鍵值對
7、Whitespace 可以使用任何一對中的令牌
8、null empty
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/306196.html