JSON基础

什么是JSON?

   1.JSON是指JavaScript对象表示法(JavaScript Object Notation)

 2.JSONS是轻量级的文本数据交换格式 (全后端交互)

    3.JSON独立于语音 (是不是可也看成正则一样的东西,每一种语言都可也用)

 4.JSON具有自我描述性,更易理解

几乎所有编程语言都解析JSON的库,而在JavaScript中,我们可以直接使用JSON,因为JavaScript内置了JSON的解析。把任何JavaScript对象变成JSON,就是把这个对象序列化成一个JSON格式的字符串,这样才能通过网络传递给其他计算机。

如果我们收到一个JSON格式的字符串,只需要把它反序列化成一个JavaScrip对象,就可以在JavaScript中直接使用这个对象了.

序列化

var xiaoming = {
    name: '小明',
    age: 14,
    gender: true,
    height: 1.65,
    grade: null,
    'middle-school': '"W3C" Middle School',
    skills: ['JavaScript', 'Java', 'Python', 'Lisp']
};



var s = JSON.stringify(xiaoming);
console.log(s);

序列化

拿到一个JSON格式的字符串,我们直接用JSON.parse()把它变成一个JavaScript对象:

JSON.parse('[1,2,3,true]'); // [1, 2, 3, true]
JSON.parse('{"name":"小明","age":14}'); // Object {name: '小明', age: 14}
JSON.parse('true'); // true
JSON.parse('123.45'); // 123.45

  Python中的json模块如何使用

# -*- coding:utf-8 -*-

import json

s = '{"name": "小赵", "age": 18}'

# 把字符串反序列化成python格式的数据
strs = json.loads(s)
print(strs, type(strs))

# 把字典格式序列化成字符串
strs1 = json.dumps(strs)
print(strs1, type(strs1))


{'age': 18, 'name': '小赵'} <class 'dict'>
{"age": 18, "name": "u5c0fu8d75"} <class 'str'>

  注意:

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

  总结:

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

JSON.parse(): 用于将一个 JSON 字符串转换为 JavaScript 对象。

JSON.stringify(): 用于将 JavaScript 值转换为 JSON 字符串。 

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

json.loads():用于将一个JSON字符串转换为字典

json.dumps():用于将一个字典转换为一个JSON字符串

原文地址:https://www.cnblogs.com/materfont/p/9566998.html