# 4.Json简介




### 官方解释

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。 易于人阅读和编写。同时也易于机器解析和生成。 它基于JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999的一个子集。 JSON采用完全独立于语言的文本格式，但是也使用了类似于C语言家族的习惯（包括C, C++, C#, Java, JavaScript, Perl, Python等）。 这些特性使JSON成为理想的数据交换语言。

### 什么是JSON

首先json是字符串。

大家都知道，字符串是用来传递信息的。json字符串实际上就是一种规定了格式的字符串，

通过这种格式，我们可以在不同的编程语言之间互相传递信息，比如我们可以把javascript的对象转换成json传递给java，这样java可以反解析出java语言自身代表的对象；同理，我们可以把java对象转成json，通过解析json，python语言可以把json转成是自身的dict或者是list，json统一了交流的格式，使得信息可以在不同的语言间顺畅传递。

### JSON解析的简单例子

比如，我们可以把json字符串转成python语言的dict

```python
#coding: utf-8
import json

json_str = """
{
    "id" : 90,
    "name" : "python",
    "url" : "http://www.v2ex.com/go/python",
    "title" : "Python",
    "title_alternative" : "Python",
    "topics" : 7646,
    "stars" : 4862,

        "header" : "这里讨论各种 Python 语言编程话题，也包括 Django，Tornado 等框架的讨论。这里是一个能够帮助你解决实际问题的地方。",


        "footer" : null,

    "created" : 1278683336,
    "avatar_mini" : "//v2ex.assets.uxengine.net/navatar/8613/985e/90_mini.png?m=1504080972",
    "avatar_normal" : "//v2ex.assets.uxengine.net/navatar/8613/985e/90_normal.png?m=1504080972",
    "avatar_large" : "//v2ex.assets.uxengine.net/navatar/8613/985e/90_large.png?m=1504080972"
}
"""
res = json.loads(json_str)

print(res['id']) # 90
print(res['name']) # python
print(res['url']) # http://www.v2ex.com/go/python

```




原始封面

![课程图片](https://images.unsplash.com/photo-1472157510410-64a053cbc39f?w=300)


