日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

java缓存同步_浅谈JSON的数据交换、缓存问题和同步问题

發(fā)布時間:2023/12/2 javascript 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java缓存同步_浅谈JSON的数据交换、缓存问题和同步问题 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

JSON輕量級的數(shù)據(jù)交換格式

相對于XML來說,JSON的解析速度更快,文檔更小。

JSON的格式

{屬性名:屬性值,屬性名:屬性值,……}

屬性名的類型可以是string,number,boolean,null,object,且屬性名必須用雙引號引起來,如果屬性值是字符串,也必須用雙引號括起來。

JSON表示數(shù)組

格式:[value,value,value],其中value可以是基本的數(shù)據(jù)類型,也可以是object類型、數(shù)組類型

數(shù)組類型

[

{“name”:”yangjq”,”age”:22},

{“name”:”andreny”,”age”:21}

];

對象類型

[

“name”:”andreny”,

“hobby”:[“sing”,”dance”,”eat”]

]

轉(zhuǎn)換

graph LR

JSON字符串-->JavaScript對象

1.使用JavaScript的原生函數(shù):eval(),不過此方法有危險,使用需謹慎。

var str={"name":"yangjq","age":23};

var obj=eval("("+str+")");

alert(obj.name);

2.使用原生對象JSON提供的parse()方法,如果這個對象無效,說明你瀏覽器版本太低了!!!

var str={"name":"andreny","age":22};

var obj=JSON.parse(str);

alert(obj.name);

3.使用JSON.js文件為字符串增加的方法。

var str={"name":"逗比的二哈","age":9};

var obj=str.parseJSON();

alert(obj.name);

JSON對象轉(zhuǎn)換為JSON字符串

graph LR

JSON對象-->JSON字符串

利用JSON官方提供的API:JSONObject,JSONArray提供的方法

//第一種方式

Emp emp=new Emp("1","andreny","man");

JSONObject obj=JSONObject.fromObject(emp);

String jsonStr=obj.toString();

//第二種方式

var obj={"name":"yangjq","age":23};

var str1=obj.toJSONString();

//第三種方式

var str2=obj.JSON.stringify();

AJAX在發(fā)送請求時涉及的緩存問題

==注==:IE瀏覽器提供的AJAX對象在發(fā)送請求時會先檢查是否訪問過該地址,如果訪問過,那么瀏覽器就不再發(fā)送請求。

不同瀏覽器對待緩存的機制

Chrome 繼續(xù)發(fā)送請求

Firefox 繼續(xù)發(fā)送請求

IE瀏覽器 不再發(fā)送請求

怎么防止瀏覽器因為緩存而不發(fā)送請求呢?

在請求地址后面添加一個隨機數(shù)

xhr.open('get','getNumber.do?+Math.random(),true);

發(fā)送post請求

關于同步的一些問題

在發(fā)送同步請求后,瀏覽器要等待服務器的響應到達后才能繼續(xù)在頁面中操作。AJAX在發(fā)送同步請求的時候,瀏覽器會鎖定當前頁面。

測試代碼

package yangjq.test;

import java.util.ArrayList;

import java.util.List;

import net.sf.json.JSONArray;

import net.sf.json.JSONObject;

import yangjq.entity.Friend;

public class JSONtest {

public static void main(String[] args) {

System.out.println("---------------");

test1();

test2();

test3();

test4();

}

// java對象轉(zhuǎn)換為json字符串

public static void test1(){

Friend f=new Friend();

f.setName("andreny");

f.setAge(23);

JSONObject obj=JSONObject.fromObject(f);

System.out.println(obj.toString());

}

// JSON集合轉(zhuǎn)換為JSON字符串

public static void test2(){

List fs=new ArrayList();

for (int i=0;i<10;i++){

Friend f=new Friend();

f.setName("yangjq"+i);

f.setAge(12+i);

fs.add(f);

}

JSONArray ja=JSONArray.fromObject(fs);

System.out.println("-----JSON集合轉(zhuǎn)換為JSON字符串------\n"+fs);

System.out.println(ja.toString());

}

// JSON字符串轉(zhuǎn)換為java對象

public static void test3(){

String jsonStr="{\"name\":\"andreny\",\"age\":22}";

JSONObject obj=JSONObject.fromObject(jsonStr);

Friend friend=(Friend) JSONObject.toBean(obj,Friend.class);

System.out.println("-------JSON字符串轉(zhuǎn)換為java對象------\n"+obj.toString());

System.out.println(friend);

}

// JSON字符串轉(zhuǎn)換為java集合

public static void test4(){

String jsonStr="[{\"name\":\"yangjq\",\"age\":22}," +

"{\"name\":\"andreny\",\"age\":23}]";

JSONArray obj=JSONArray.fromObject(jsonStr);

List friends=(List) JSONArray.toCollection(obj,Friend.class);

System.out.println("--------JSON字符串轉(zhuǎn)換為java集合---------");

for (Friend f:friends){

System.out.println(f);

}

}

}

運行結(jié)果:

---------------

{"age":23,"name":"andreny"}

-----JSON集合轉(zhuǎn)換為JSON字符串------

[Friend [name=yangjq0, age=12], Friend [name=yangjq1, age=13], Friend [name=yangjq2, age=14], Friend [name=yangjq3, age=15], Friend [name=yangjq4, age=16], Friend [name=yangjq5, age=17], Friend [name=yangjq6, age=18], Friend [name=yangjq7, age=19], Friend [name=yangjq8, age=20], Friend [name=yangjq9, age=21]]

[{"age":12,"name":"yangjq0"},{"age":13,"name":"yangjq1"},{"age":14,"name":"yangjq2"},{"age":15,"name":"yangjq3"},{"age":16,"name":"yangjq4"},{"age":17,"name":"yangjq5"},{"age":18,"name":"yangjq6"},{"age":19,"name":"yangjq7"},{"age":20,"name":"yangjq8"},{"age":21,"name":"yangjq9"}]

-------JSON字符串轉(zhuǎn)換為java對象------

{"name":"andreny","age":22}

Friend [name=andreny, age=22]

--------JSON字符串轉(zhuǎn)換為java集合---------

Friend [name=yangjq, age=22]

Friend [name=andreny, age=23]

總結(jié)

以上就是本文關于淺談JSON的數(shù)據(jù)交換、緩存問題和同步問題的全部內(nèi)容,希望對大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站其他相關專題,如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!

總結(jié)

以上是生活随笔為你收集整理的java缓存同步_浅谈JSON的数据交换、缓存问题和同步问题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。