zoukankan      html  css  js  c++  java
  • json字符串和xml的 比较

    json是ajax前戏,在前后端传输数据都要用到json

    json是一种轻量级的数据交换格式,

    (JavaScript Objects Notation ,js对象标记),与JavaScript有关,

    独立于编程语言的文本格式来存储和表示数据,

    json.dumps()序列化得到字符串,放到磁盘里,

    python支持的数据类型, int,str,list,tuple,dict,set

    在python中单引号,与双引号没有区别

    在json中数据格式,都是双引号,

    info = {'name':'gu ','age':10}
    
    print(type(info))#<class 'dict'>
    
    import json
    ret=json.dumps(info)
    print(type(ret))#<class 'str'>
    print(ret)#{"name": "gu ", "age": 10}

    把序列化的数据写到文件里,json.dumps() 得到的都是字符串,

    #把序列化的数据写到文件里,文件名就是info.txt
    f=open('info.txt','w')
    
    data=f.write(ret)#把序列化的ret文件存到文件里
    f.close()

    在磁盘中就有info.txt

    从磁盘的文件中读取json格式的数据,

    #从磁盘中读取json格式的文件
    f=open('info.txt')#读取文件,
    data=f.read()#得到数据json格式的数据
    dict = json.loads(data)#从json格式的数据反序列化得到python格式的数据,前提,是要反序列的数据必须是json格式,双引号才行,
    print(dict['name'])#gu

    ----

    json对象和json字符串。

    json对象就是JavaScript对象的一个子集,

    js的数据类型有,null,number ,str,undefind,array(数组),data,bool, { “”:“”}

    json 里有null(空),number,string,bool,array,{ “”:“”}

    再json中只认 双引号的字符串 ,

     总结: json字符串就是js对象加上双引号,

    为什么要单列出json数据类型,在web应用, 前后端数据交换,后端是python语言,前端是js数据,就涉及到数据交换,或者,python语言与java语言交流,都要用json数据格式来交换,都用json字符串,

    ------

    stringify 与parse方法

    json.parse(“json字符串”),把一个json字符串反序列为javascript对象,在前端里用,

    在前端html 文件中,console.log(JSON.parse('{"name":"egon"}')); 得到一个object,name:egon

    json.stringify(js对象),把JavaScript值序列化为json字符串,在后端使用

    console.log(json.stringify([11,22,33])) 得到一个string类型,

    console.log(JSON.stringify({'name':"egon"}))); 把不符合条件的先转化为符合条件的json格式

    console.log(JSON.stringify(typeof{"name":"egon"}));

    ----

    xml  数据格式

    在2001年以前数据交换是用xml的,

    xml和json都使用结构化方法来标记数据,

    在xml有节点,节点套节点,还可以收起来, ,类似于HTML的结构存数据

    json类似于 用字典的格式存数据,

    json没有xml结构清晰,

    在数据交换,json的代码量更小,xml在数据量大的时候代码量非常大,

    在线格式代码的工具,bejson,sojson ,可以把乱了的json数据格式格式化整齐的代码,层级结构就清晰了,

    www.bejson.com

    json数据格式,代码量少,易读,

    在ajax就要用到json,

    ajax  异步JavaScript和xml,(Asynchronous javas and xml)

  • 相关阅读:
    带修改离线主席树 + 树状数组 ZOJ
    树上主席树 + LCA SPOJ
    基础静态主席树 POJ
    数列分块入门1-9 LibreOJ
    Some about me
    [Java]Thinking in Java 练习2.12
    [Java]Thinking in Java 练习2.10
    [Java]Java中的自动包装
    [Java]Thinking in Java 练习2.2
    [杂记]CodeBlocks下载、安装及设置
  • 原文地址:https://www.cnblogs.com/gyh04541/p/7944807.html
Copyright © 2011-2022 走看看