Python學習---JSON學習180130

來源:互聯網
上載者:User

標籤:整數   image   注意   規範   執行個體   使用   cli   jin   python   

JSON(JavaScript Object Notation) 是一種輕量級的資料交換格式。JSON是用字串來表示Javascript對象;

Json字串就是js對象的一種表現形式(字串的形式)

不管是python還是其它語言,它們都有自己的資料類型,但如果要處理成json字串就需要把資料換轉成js對應的資料對象(比如python的元組就被處理成了數組,字典就被處理成object),再加上引號就是json字串了;
      前端接受到json字串,就可以通過JSON.parse()等方法解析成json對象(即js對象)直接使用了

Json的資料類型

· 數字    (整數或浮點數)

· 字串 (必須雙引號)

· 邏輯值 (true 或 false)

· 數組 (在方括弧中)

· 對象 (在花括弧中,引號用雙引)

null

Json和Python對象的對應

Json執行個體

settigs.py:

‘DIRS‘: [os.path.join(BASE_DIR, ‘templates‘)],  # 設定templates的路徑為Django以前版本# ‘DIRS‘: [],      # 注釋掉該行,此為Django 2.0.1最新版本# ‘django.middleware.csrf.CsrfViewMiddleware‘,         ...省略預設配置STATIC_URL = ‘/static/‘TEMPLATE_DIRS = (os.path.join(BASE_DIR,  ‘templates‘),)  # 原配置# 靜態資源檔案STATICFILES_DIRS = (os.path.join(BASE_DIR, "statics"),)   # 現添加的配置,這裡是元組,注意逗號

templates/ajax_jquery.html

<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8"></head><body><button onclick="func1()">Ajax提交</button></body><script src="/static/jquery-3.2.1.js"></script><script>    function func1() {        Test();    }    function Test() {       $.post("/jquery_ajax_test/", function (data) {    console.log(‘轉換前:‘);    console.log(data);            {# JSON字串 #}    console.log(typeof data);    console.log(data["name"]);    console.log(‘轉換後:‘);       {# JSON對象 #}    per = JSON.parse(data);     console.log(per);    console.log(typeof per);    console.log(per["name"]);})    }</script></html>

mysite2/urls.py

from django.contrib import adminfrom django.urls import pathfrom blog import viewsfrom django.conf.urls import urlurlpatterns = [      # Jquery_Ajax  url(r‘ajax-jquery/‘, views.ajax_jquery),  # jquery_ajax_test  url(r‘jquery_ajax_test/‘, views.jquery_ajax_test),]

views.py

from django.shortcuts import render, HttpResponseimport datetime # Jquery --> ajaxdef ajax_jquery(request):    # return HttpResponse("Hello ,Jquery_ajax")    return render(request, ‘ajax_jquery.html‘)# Jquery --> ajaximport jsondef jquery_ajax_test(request):    print(‘request.POST‘, request.POST)    person={‘name‘: ‘FTL‘, ‘age‘: 24}    obj = json.dumps(person)  # 字典轉換為json格式的字串    return HttpResponse(obj)  # HTTPResponse只能返回字串,這裡返回前台json字串

頁面顯示:

注意:JS可以列印類似Python中字典的對象內容

{# JS可以列印類似Python中字典的對象內容 #}data = {"school": "Peking", "city": "Beijing"};console.log(data["school"]);   {# Peking #}

帶方法的json對象

person是一個json對象,因為它滿足json規範:在json六大範疇且引號雙引

function Test() {    var person = {"name":"FTL",          "sex":"men",          "teacher":{             "name":"HHH",              "sex":"half_men",          },          "bobby":[‘basketball‘,‘running‘],           "getName":function() {return 80;}          };    console.log(person.name);    console.log(person.getName());    console.log(person.teacher.name);    console.log(person.bobby[0]);

json對象 的方法:

json對象的方法:

parse() 用於從一個json字串中解析出json對象,如     var str = ‘{"name":"HHH","age":"23"}‘     結果:JSON.parse(str)        ------>  Object  {age: "23",name: "yuan"}stringify()用於從一個json對象解析成json字串,如     var c= {a:1,b:2}      結果:  JSON.stringify(c)     ------>      ‘{"a":1,"b":2}‘注意1:單引號寫在{}外,每個屬性名稱都必須用雙引號,否則會拋出異常。注意2:  a={name:"yuan"};   //ok  b={‘name‘:‘yuan‘}; //ok  c={"name":"yuan"}; //ok  alert(a.name);  //ok  alert(a[name]); //undefined  alert(a[‘name‘]) //ok
JSON與XML比較

JSON與XML比較

· 可讀性: XML勝出;

· 解碼難度:JSON本身就是JS對象(主場作戰),所以簡單很多;

· 流行度: XML已經流行好多年,但在AJAX領域,JSON更受歡迎。

註解:其實本沒什麼json對象,只是我們自己這麼稱呼罷了,所謂的json資料就是指json字串,在前端解析出來的對象就是js對象的一部分!

Python學習---JSON學習180130

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.