最近对json的操作不是很理解

定义:

JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式。
它基于 ECMAScript (w3c制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。
简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。

讲json对象,不得不提到JS对象:

合格的json对象:

["one", "two", "three"]

{ "one": 1, "two": 2, "three": 3 }

{"names": ["张三", "李四"] }

[ { "name": "张三"}, {"name": "李四"} ]

不合格的json对象:

{ 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;} // 不能使用函数和日期对象
}

2、stringify与parse方法

JSON.parse():     用于将一个 JSON 字符串转换为 JavaScript 对象 
eg:
console.log(JSON.parse('{"name":"Yuan"}'));
console.log(JSON.parse('{name:"Yuan"}')) ; // 错误
console.log(JSON.parse('[12,undefined]')) ; // 错误

JSON.stringify(): 用于将 JavaScript 值转换为 JSON 字符串。 
eg: console.log(JSON.stringify({'name':"egon"})) ;

3、和XML的比较

JSON 格式于2001年由 Douglas Crockford 提出,目的就是取代繁琐笨重的 XML 格式。

JSON 格式有两个显著的优点:书写简单,一目了然;符合 JavaScript 原生语法,可以由解释引擎直接处理,不用另外添加解析代码。所以,JSON迅速被接受,已经成为各大网站交换数据的标准格式,并被写入ECMAScript 5,成为标准的一部分。

XML和JSON都使用结构化方法来标记数据,下面来做一个简单的比较。

用XML表示中国部分省市数据如下:

<?xml version="1.0" encoding="utf-8"?>
<country>
<name>中国</name>
<province>
<name>黑龙江</name>
<cities>
<city>哈尔滨</city>
<city>大庆</city>
</cities>
</province>
<province>
<name>广东</name>
<cities>
<city>广州</city>
<city>深圳</city>
<city>珠海</city>
</cities>
</province>
<province>
<name>台湾</name>
<cities>
<city>台北</city>
<city>高雄</city>
</cities>
</province>
<province>
<name>新疆</name>
<cities>
<city>乌鲁木齐</city>
</cities>
</province>
</country>

用JSON表示如下:

{
"name": "中国",
"province": [{
"name": "黑龙江",
"cities": {
"city": ["哈尔滨", "大庆"]
}
}, {
"name": "广东",
"cities": {
"city": ["广州", "深圳", "珠海"]
}
}, {
"name": "台湾",
"cities": {
"city": ["台北", "高雄"]
}
}, {
"name": "新疆",
"cities": {
"city": ["乌鲁木齐"]
}
}]
}

可以看到,JSON 简单的语法格式和清晰的层次结构明显要比 XML 容易阅读,并且在数据交换方面,由于 JSON 所使用的字符要比 XML 少得多,可以大大得节约传输数据所占用得带宽。

注意:

JSON格式取代了xml给网络传输带来了很大的便利,但是却没有了xml的一目了然,尤其是json数据很长的时候,我们会陷入繁琐复杂的数据节点查找中。
但是国人的一款在线工具 BeJson 、SoJson在线工具让众多程序员、新接触JSON格式的程序员更快的了解JSON的结构,更快的精确定位JSON格式错误。

4、数据交换

def login(request):
obj={'name':"alex111"}
return render(request,'index.html',{"objs":json.dumps(obj)})
#----------------------------------
<script>
var temp={{ objs|safe }}
alert(temp.name);
alert(temp['name'])
</script>

最新文章

  1. 用Barcode生成条形码图片
  2. Java四种线程池
  3. 25套用于 Web UI 设计的免费 PSD 网页元素模板
  4. Unity场景道具模型拓展自定义编辑器
  5. php 调试工具及学习PHP垃圾回收机制了解引用计数器的概念
  6. Linux内核加载全流程
  7. SQL中的CASE WHEN用法
  8. 使用PowerShell 命令集进行SQL Server 2012 备份和还原
  9. OpenGL ES2.0入门详解
  10. 初学者---AngularJS详解
  11. 用python进行应用程序自动化测试(uiautomation)
  12. linux C 刚初始化后的一个变量在调用一个静态库中函数后被异常修改为乱码
  13. js:函数与变量作用域的提升
  14. C# Parallel用法
  15. gulp3 和 gulp4 区别
  16. [Bayes] Understanding Bayes: A Look at the Likelihood
  17. SpringBoot注册Servlet/Filter/Listener
  18. 【第十章】 springboot + logback
  19. 按照拼音排序的SQL语句条件
  20. 【BZOJ3625/CF438E】小朋友和二叉树(多项式求逆,多项式开方)

热门文章

  1. 解决eclipse无法打开:Failed to load the JNI shared library
  2. ListView嵌套GridView使用详解及注意事项
  3. Bootstrap学习笔记(1)栅格系统
  4. phpmyadmin通过日志文件拿webshell
  5. treeMap,key排序,value排序
  6. php调用c语言编写的so动态库
  7. 02 SQL 执行
  8. Android学习15--使用(Drawable)资源
  9. js用计时器加载大量dom
  10. javascript屏蔽浏览器右键功能按钮