時間處理相關知識點整理
JAVA獲取時間方法
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String dateNowStr = sdf.format(d);
System.out.println("格式化後的日期:" + dateNowStr);
JAVABEAN相關注解配置 (基於SSM開發下)
@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss")
private Date time;
/**
*在mybatis 字段直接引用 time = #{time} 即可
*/
前端JS獲取當前時間函數
function getNowFormatDate() {
var date = new Date();
var seperator1 = "-";
var seperator2 = ":";
var month = date.getMonth() + 1;
var strDate = date.getDate();
if (month >= 1 && month <= 9) {
month = "0" + month;
}
if (strDate >= 0 && strDate <= 9) {
strDate = "0" + strDate;
}
var currentdate = date.getFullYear() + seperator1 + month + seperator1 + strDate
+ " " + date.getHours() + seperator2 + date.getMinutes()
+ seperator2 + date.getSeconds();
return currentdate;
}
Ajax、Json相關常見問題
JAVA中處理ajax傳來的參數以及json
@RequestMapping(value = "/recorderUpInfo.json", method = RequestMethod.POST)
@ResponseBody
public void getAjaxParam(String jsonStr){
//jsonStr爲json字符串 實際爲一個實例對象
//將json字符串轉爲對象
/**
*var jsonStr= {
RID : "01fa9ee44f4f4e98aae09303e36ddeae",
isRecord : 1,
recordDate: recordTime,
recorder : "demoMan"
}
*/
//基於jar:
//import com.alibaba.fastjson.JSON;
//import com.alibaba.fastjson.JSONArray;
//import com.alibaba.fastjson.JSONObject;
Object object = JSON.parseObject(jsonStr,Object.class);
//一個JsonObject文本數據
String s = "{\"name\":\"liuzhao\"}";
//將JsonObject數據轉換爲Json
JSONObject object = JSON.parseObject(s);
//利用鍵值對的方式獲取到值
System.out.println(object.get("name"));
}
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
//下面是FastJson的簡介:常用的方法!
// Fastjson API入口類是com.alibaba.fastjson.JSON,常用的序列化操作都可以在JSON類上的靜態方法直接完成。
// public static final Object parse(String text); // 把JSON文本parse爲JSONObject或者JSONArray
// public static final JSONObject parseObject(String text); // 把JSON文本parse成JSONObject
// public static final <T> T parseObject(String text, Class<T> clazz); // 把JSON文本parse爲JavaBean
// public static final JSONArray parseArray(String text); // 把JSON文本parse成JSONArray
// public static final <T> List<T> parseArray(String text, Class<T> clazz); //把JSON文本parse成JavaBean集合
// public static final String toJSONString(Object object); // 將JavaBean序列化爲JSON文本
// public static final String toJSONString(Object object, boolean prettyFormat); // 將JavaBean序列化爲帶格式的JSON文本
// public static final Object toJSON(Object javaObject); 將JavaBean轉換爲JSONObject或者JSONArray(和上面方法的區別是返回值是不一樣的)
/**
* 這是關於FastJson的一個使用Demo,在Java環境下驗證的;
* 使用的時候可以參照這個例子進行回憶!
* 備註:下面寫的Json格式的數據"前面的\,意思是告訴編譯器忽略掉它後面的"。
* 後面定義有三個類:User、Group、Weibo
* @author liuzhao
*/
public class JsonDemo {
public static void main(String[] args) {
json2JsonObjectM1();//將Json文本數據信息轉換爲JsonObject對象,然後利用鍵值對的方式獲取信息
json2BeanM2();//將Json文本數據轉換爲JavaBean數據!
json2JSONArrayM3();//將json數據轉化爲JSONArray:
json2JavaBeanM4();//將JSON文本轉換爲JavaBean的集合;轉換爲單純的1個Object:parseObject(String text, Class<T> clazz);
bean2JsonM5();//將JavaBean轉換爲Json格式的數據/Json文本 用戶數據的傳遞:例如上傳服務器
bean2JSONObjectM6();//將JavaBean轉換爲JSON對象
complexExampleM7();//一個相對複雜的例子:
complex2JsonM8();//一個複雜的Object到Json的Demo
complexMap2JsonM9();//將Map數據轉換爲JsonString的Demo;這個對RedBoy服務端不就直接破了嘛!
}
/**
* 將Json文本數據信息轉換爲JsonObject對象,然後利用鍵值對的方式獲取信息
*/
private static void json2JsonObjectM1() {
//一個JsonObject文本數據
String s = "{\"name\":\"liuzhao\"}";
//將JsonObject數據轉換爲Json
JSONObject object = JSON.parseObject(s);
//利用鍵值對的方式獲取到值
System.out.println(object.get("name"));
/**
* 打印:
* liuzhao
*/
}
/**
* 將Json文本數據轉換爲JavaBean數據!
* 需要注意的是:這時候的Json文本信息中的鍵的名稱必須和JavaBean中的字段名稱一樣!鍵中沒有的在這個JavaBean中就顯示爲null!
*/
private static void json2BeanM2() {
String s = "{\"id\":\"0375\",\"city\":\"平頂山\"}";
//一個簡單方便 的方法將Json文本信息轉換爲JsonObject對象的同時轉換爲JavaBean對象!
Weibo weibo = JSON.parseObject(s, Weibo.class);//Weibo類在下邊定義
System.out.println(weibo.getId());
System.out.println(weibo.getCity());
//打印的結果 0375
// 平頂山
}
/**
* 將Map類型的數據轉換爲JsonString
*/
private static void complexMap2JsonM9() {
Group group = new Group();
group.setId(1);
group.setName("group");
User user1 = new User();
user1.setId(2);
user1.setName("user1");
User user2 = new User();
user2.setId(3);
user2.setName("user2");
group.getList().add(user1);
group.getList().add(user2);
Map<Integer, Object> map = new HashMap<Integer,Object>();
map.put(1, "No.1");
map.put(2, "No.2");
map.put(3, group.getList());
String jsonString = JSON.toJSONString(map);
System.out.println(jsonString);
/**
* 輸出:{1:"No.1",2:"No.2",3:[{"id":2,"name":"user1"},{"id":3,"name":"user2"}]}
*/
}
/**
* 由一個複雜的Object到Json的Demo
*/
private static void complex2JsonM8() {
Group group = new Group();
group.setId(1);
group.setName("group");
User user1 = new User();
user1.setId(2);
user1.setName("user1");
User user2 = new User();
user2.setId(3);
user2.setName("user2");
group.getList().add(user1);
group.getList().add(user2);
String jsonString = JSON.toJSONString(group);
System.out.println(jsonString);
/**
* 輸出:{"id":1,"list":[{"id":2,"name":"user1"},{"id":3,"name":"user2"}],"name":"group"}
*/
}
/**
* 一個相對複雜的例子:
* JSON文本數據:
* 首先是JSONObject,轉換爲JSONArray;
* 然後將JSONArray轉換爲JavaBean
*/
private static void complexExampleM7() {
String s = "{js:[{id:\"110000\",\"city\":\"北#001京市\"},{id:\"110000\",\"city\":\"北#002京市\"}"
+ ",{id:\"110000\",\"city\":\"北#002京市\"},{id:\"110000\",\"city\":\"北#002京市\"},"
+ "{id:\"110000\",\"city\":\"#006北#005京市\"},"
+ "{id:\"110000\",\"city\":\"北#002京市\"},"
+ "{id:\"110000\",\"city\":\"北#002京市\"},{id:\"120000\",\"city\":\"天#009津市\"}]}";
JSONObject object = JSON.parseObject(s);
Object jsonArray = object.get("js");
System.out.println(jsonArray);
List<Weibo> list = JSON.parseArray(jsonArray+"", Weibo.class);
for (Weibo weibo : list) {
System.out.println(weibo.getCity());
}
}
/**
* 將JavaBean轉換爲JSON對象
*/
private static void bean2JSONObjectM6() {
Weibo weibo = new Weibo("0373", "洛陽");
JSONObject json = (JSONObject) JSON.toJSON(weibo);
System.out.println(json.get("id"));
/**
* 打印:
* 0373
*/
}
/**
* 將JSON文本轉換爲JavaBean的集合;
* 內部實現肯定是:首先轉換爲JSONArray,然後再轉換爲List集合
*/
private static void json2JavaBeanM4() {
String s = "[{\"id\":\"0375\",\"city\":\"平頂山\"},{\"id\":\"0377\",\"city\":\"南陽\"}]";
List<Weibo> list = JSON.parseArray(s, Weibo.class);
for (Weibo weibo : list) {
System.out.println(weibo.getCity());
}
/**
* 打印:
* 平頂山
* 南陽
*/
}
/**
* 將json數據轉化爲JSONArray:
* 注意:獲取到JSONArray之後(我們這裏只是獲取到JSONArray而不是JavaBean的List集合)
* 獲取JSONArray中的數據轉換爲String類型需要在外邊加"";
*/
private static void json2JSONArrayM3() {
String s = "[{\"id\":\"0375\",\"city\":\"平頂山\"},{\"id\":\"0377\",\"city\":\"南陽\"}]";
//將JSON文本轉換爲JSONArray
JSONArray array = JSON.parseArray(s);
//這行必須寫:必須加上+"";不然會報出類型強轉異常!
String str = array.get(1)+"";
System.out.println(array.get(0));
JSONObject object = JSON.parseObject(str);
System.out.println(object.get("id"));
/**
* {"city":"平頂山","id":"0375"}
0377
*/
}
/**
* 將JavaBean轉換爲Json格式的數據/Json文本
* 用戶數據的傳遞:例如上傳服務器
*/
private static void bean2JsonM5() {
Weibo weibo = new Weibo("123456", "上海");
String string = JSON.toJSONString(weibo);
System.out.println(string);
/**
* 打印:
* {"city":"上海","id":"123456"}
*/
}
}
JS處理json
//一.Json對象與Json字符串的轉化
//1.jQuery插件支持的轉換方式:
$.parseJSON( jsonstr );
//jQuery.parseJSON(jsonstr),可以將json字符串轉換成json對象
//2.瀏覽器支持的轉換方式(Firefox,chrome,opera,safari,ie9,ie8)等瀏覽器:
//JSON.stringify(obj)將JSON轉爲字符串。JSON.parse(string)將字符串轉爲JSON格式;
var a={"name":"tom","sex":"男","age":"24"};
var b='{"name":"Mike","sex":"女","age":"29"}';
var aToStr=JSON.stringify(a);
var bToObj=JSON.parse(b);
alert(typeof(aToStr)); //string
alert(typeof(bToObj));//object
//3.Javascript支持的轉換方式:
eval('(' + jsonstr + ')');
//可以將json字符串轉換成json對象,注意需要在json字符外包裹一對小括號
//注:ie8(兼容模式),ie7和ie6也可以使用eval()將字符串轉爲JSON對
//象,但不推薦這些方式,這種方式不安全eval會執行json串中的表達式。
/**4.JSON官方的轉換方式:
http://www.json.org/提供了一個json.js,這樣ie8(兼容模式),ie7和ie6就可以支持JSON對象以及其stringify()和parse()方法;
可以在https://github.com/douglascrockford/JSON-js上獲取到這個js,一般現在用json2.js。*/
跨域問題
JAVA跨域相關配置
@CrossOrigin
//Spring MVC 4.2.5以後新增的支持跨域的註解@CrossOrigin,如果
//是老項目的話升級spring庫可能會有些兼容的問題,不知爲什麼這個註解沒
//有升效;
//參考:[Spring MVC 解決跨域問題&以及對@RequestBody的理解]
//(http://blog.csdn.net/wq_static/article/details/51418384)
前端跨域相關設置
$.ajax({
url : urlPath1,
type : "post",
headers: {'Contenttype':'application/json;charset=UTF-8'},
data:JSON.stringify(userEvenLog),
dataType:'json',
contentType : "application/json; charset=utf-8",
success : function (data) {
//用戶日誌插入成功 true
console.info(data)
}
});
//另外有一種方法是用 jsonp
[Ajax跨域方法](http://blog.csdn.net/u012850192/article/details/69666942)
//網上看到說還有可能是瀏覽器的跨域問題 這個目前沒有遇到過