概念

  • JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation)
  • JSON 是轻量级的文本数据交换格式
  • JSON 独立于语言 *
  • JSON 具有自我描述性,更易理解

Django JSON,AJAX

示例

  • ["one", "two", "three"]
  • { "one": 1, "two": 2, "three": 3 }
  • {"names": ["张三", "李四"] }
  • [ { "name": "张三"}, {"name": "李四"} ] 

格式不正确的示例

  • { name: "张三", 'age': 32 }      // 属性名必须使用双引号
  • [32, 64, 128, 0xFFF]      // 不能使用十六进制值
  • { "name": "张三", "age": undefined }      // 不能使用undefined
  • { "name": "张三","birthday": new Date('Fri, 26 Aug 2011 07:13:10 GMT'),"getName": function() {return this.name;}      // 不能使用函数和日期对象}

相关方法

  JavaScript中关于JSON对象和字符串转换的两个方法:

    • JSON.parse():                               用于将一个 JSON 字符串转换为 JavaScript 对象 
    • JSON.parse('{"name":"Q1mi"}');
    • JSON.parse('{name:"Q1mi"}') ; // 错误
    • JSON.parse('[18,undefined]') ; // 错误
    • JSON.stringify():                             用于将 JavaScript 值转换为 JSON 字符串。 
    • JSON.stringify({"name":"Q1mi"})

和XML的比较

  • 书写简单
  • 一目了然
  • 可以由解释引擎直接处理
  • 无需另外添加解析代码

AJAX

概念

  • 使用Javascript语言与服务器进行异步交互进行传输的数据的传输
  • 在不重新加载整个页面的情况下,可以与服务器交换数据并更新部分网页内容。
  • 无需要任何浏览器插件,但需要用户允许JavaScript在浏览器上执行。
    • 同步交互:客户端发出一个请求后,需要等待服务器响应结束后,才能发出第二个请求;
    • 异步交互:客户端发出一个请求后,无需等待服务器响应结束,就可以发第二个请求

示例

 1 // HTML部分代码
 2 !DOCTYPE html>
 3 <html lang="en">
 4 <head>
 5   <meta charset="UTF-8">
 6   <meta http-equiv="x-ua-compatible" content="IE=edge">
 7   <meta name="viewport" content="width=device-width, initial-scale=1">
 8   <title>AJAX局部刷新实例</title>
 9 </head>
10 <body>
11 
12 <input type="text" id="i1">+
13 <input type="text" id="i2">=
14 <input type="text" id="i3">
15 <input type="button" value="AJAX提交" id="b1">
16 
17 <script src="/static/jquery-3.2.1.min.js"></script>
18 <script>
19   $("#b1").on("click", function () {
20     $.ajax({
21       url:"/ajax_add/",
22       type:"GET",
23       data:{
24       "i1":$("#i1").val(),
25       "i2":$("#i2").val()
26       },
27       success:function (data) {
28         $("#i3").val(data);
29       }
30     })
31   })
32 </script>
33 </body>
34 </html>
35 
36 
37 # views.py
38 def ajax_demo1(request):
39     return render(request, "ajax_demo1.html")
40 
41 
42 def ajax_add(request):
43     i1 = int(request.GET.get("i1"))
44     i2 = int(request.GET.get("i2"))
45     ret = i1 + i2
46     return JsonResponse(ret, safe=False)
47 
48 
49 urls.py
50 urlpatterns = [
51     ...
52     url(r'^ajax_add/', views.ajax_add),
53     url(r'^ajax_demo1/', views.ajax_demo1),
54     ...   
55 ]
View Code

相关文章:

  • 2021-12-03
  • 2021-09-28
  • 2022-02-09
  • 2022-02-09
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-01-20
  • 2021-12-26
  • 2021-08-04
  • 2021-11-20
  • 2021-11-27
  • 2021-09-11
  • 2021-12-07
相关资源
相似解决方案