激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|JavaScript|易語言|

香港云服务器
服務器之家 - 編程語言 - JAVA教程 - 淺談JSON的數據交換、緩存問題和同步問題

淺談JSON的數據交換、緩存問題和同步問題

2021-03-11 13:44人圭先生 JAVA教程

這篇文章主要介紹了淺談JSON的數據交換、緩存問題和同步問題,具有一定借鑒價值,需要的朋友可以參考下

JSON輕量級的數據交換格式

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

JSON的格式

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

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

JSON表示數組

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

?
1
2
3
4
5
6
數組類型
 
[
{“name”:”yangjq”,”age”:22},
{“name”:”andreny”,”age”:21}
];
?
1
2
3
4
5
6
對象類型
 
[
“name”:”andreny”,
“hobby”:[“sing”,”dance”,”eat”]
]

轉換

?
1
2
graph LR
JSON字符串-->JavaScript對象

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

?
1
2
3
var str={"name":"yangjq","age":23};
var obj=eval("("+str+")");
alert(obj.name);

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

?
1
2
3
var str={"name":"andreny","age":22};
var obj=JSON.parse(str);
alert(obj.name);

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

?
1
2
3
var str={"name":"逗比的二哈","age":9};
var obj=str.parseJSON();
alert(obj.name);

JSON對象轉換為JSON字符串

?
1
2
graph LR
JSON對象-->JSON字符串

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

?
1
2
3
4
5
6
7
8
9
10
//第一種方式
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在發送請求時涉及的緩存問題

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

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

Chrome 繼續發送請求
Firefox 繼續發送請求
IE瀏覽器 不再發送請求

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

在請求地址后面添加一個隨機數

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

發送post請求

關于同步的一些問題

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

測試代碼

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
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對象轉換為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集合轉換為JSON字符串
    public static void test2(){
        List<Friend> fs=new ArrayList<Friend>();
        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集合轉換為JSON字符串------\n"+fs);
        System.out.println(ja.toString());
    }
    // JSON字符串轉換為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字符串轉換為java對象------\n"+obj.toString());
        System.out.println(friend);
    }
    // JSON字符串轉換為java集合
    public static void test4(){
        String jsonStr="[{\"name\":\"yangjq\",\"age\":22}," +
                "{\"name\":\"andreny\",\"age\":23}]";
        JSONArray obj=JSONArray.fromObject(jsonStr);
        List<Friend> friends=(List<Friend>) JSONArray.toCollection(obj,Friend.class);
        System.out.println("--------JSON字符串轉換為java集合---------");
        for (Friend f:friends){
            System.out.println(f);
        }
    }
}

運行結果:

?
1
2
3
4
5
6
7
8
9
10
11
---------------
{"age":23,"name":"andreny"}
-----JSON集合轉換為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字符串轉換為java對象------
{"name":"andreny","age":22}
Friend [name=andreny, age=22]
--------JSON字符串轉換為java集合---------
Friend [name=yangjq, age=22]
Friend [name=andreny, age=23]

總結

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

原文鏈接:http://blog.csdn.net/sinat_15274667/article/details/51468883

延伸 · 閱讀

精彩推薦
729
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25
主站蜘蛛池模板: 国产精品国产三级国产aⅴ无密码 | 欧美交在线| 91久久另类重口变态 | 性生活视频一级 | 91一级毛片 | 国产精品久久久久久久久久东京 | 国av在线 | 黄视频网站免费在线观看 | 毛片三区 | 亚洲小视频在线观看,com | 91精品最新国内在线播放 | 成人久久一区二区 | 欧美成人三级视频 | 免费观看一级黄色片 | 欧美一级片免费在线观看 | 精品久久久一二三区播放播放播放视频 | 日韩精品中文字幕一区二区三区 | 91成人免费视频 | 91看片淫黄大片欧美看国产片 | 成人区一区二区 | 717影院理论午夜伦八戒秦先生 | 黑人三级毛片 | 欧美hdfree性xxxx | 丰满年轻岳中文字幕一区二区 | 成人区精品一区二区婷婷 | 色综合久久久久久久久久 | 黄色的视频免费观看 | 欧美成人高清在线 | 圆产精品久久久久久久久久久 | 国产一区亚洲 | 久草导航| 免费久久久久久久 | 视频一区二区在线播放 | 九色中文字幕 | 中国字幕av| 二区三区四区视频 | 欧美一级无毛 | 国产精品自在线拍 | 日本在线视频一区二区三区 | 91精品国产九九九久久久亚洲 | 成年男女免费视频 |