JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人类阅读和编写,同时也易于机器解析和生成。JSON 的格式非常简单,主要包括以下几种数据类型:
- 对象(Object) :由花括号
{}
包围,包含键值对。 - 数组(Array) :由方括号
[]
包围,包含一组有序的值。 - 字符串(String) :由双引号
""
包围的字符序列。 - 数字(Number):整数或浮点数。
- 布尔值(Boolean) :
true
或false
。 - 空值(Null) :
null
。
JSON 格式示例
以下是一个包含所有上述数据类型的完整 JSON 示例:
json
{
"name": "John Doe",
"age": 30,
"isEmployed": true,
"address": {
"street": "123 Main St",
"city": "Anytown",
"state": "CA",
"postalCode": "12345"
},
"phoneNumbers": [
{
"type": "home",
"number": "555-555-5555"
},
{
"type": "work",
"number": "555-555-5556"
}
],
"children": [],
"spouse": null
}
详细解释
- 对象(Object) :
"address"
是一个对象,包含多个键值对。 - 数组(Array) :
"phoneNumbers"
是一个数组,包含多个对象。 - 字符串(String) :
"name"
和"street"
等都是字符串。 - 数字(Number) :
"age"
是一个数字。 - 布尔值(Boolean) :
"isEmployed"
是一个布尔值。 - 空值(Null) :
"spouse"
是一个空值。
Python 代码示例
以下是一个 Python 示例,展示了如何使用 json
模块来处理 JSON 数据:
python
import json
# JSON 字符串
json_string = '''
{
"name": "John Doe",
"age": 30,
"isEmployed": true,
"address": {
"street": "123 Main St",
"city": "Anytown",
"state": "CA",
"postalCode": "12345"
},
"phoneNumbers": [
{
"type": "home",
"number": "555-555-5555"
},
{
"type": "work",
"number": "555-555-5556"
}
],
"children": [],
"spouse": null
}
'''
# 将 JSON 字符串解析为 Python 字典
data = json.loads(json_string)
# 访问数据
print(f"Name: {data['name']}")
print(f"Age: {data['age']}")
print(f"Is Employed: {data['isEmployed']}")
print(f"Street: {data['address']['street']}")
print(f"City: {data['address']['city']}")
print(f"Phone Numbers: {data['phoneNumbers'][0]['number']}")
# 将 Python 字典转换为 JSON 字符串
json_output = json.dumps(data, indent=2)
print(json_output)