我正在编写JSON文件,但我不确定以下哪种格式是正确的?
引用变量名称和所有字符串值
{
"class": {
"number": 2,
"student": {
"name": "Tom",
"age": 1
},
"student": {
"name": "May",
"age": 2
}
}
}
或
仅引用字符串值
{
class: {
number: 2,
student: {
name: "Tom",
age: 1
},
student:
{
name: "May",
age: 2
}
}
}
答案 0 :(得分:21)
第一个是有效的,如果你不知道你可以在这里很容易地在线验证你的JSON输出:http://www.jsonlint.com/
答案 1 :(得分:10)
答案 2 :(得分:1)
古老的问题,但是OP的JSON(第一种构造)可能具有正确的语法,但是由于它会重复键student
,因此会造成麻烦。
import simplejson
data = '''{
"class": {
"number": 2,
"student": {
"name": "Tom",
"age": 1
},
"student": {
"name": "May",
"age": 2
}
}
}'''
data_in = simplejson.loads(data)
print(data_in)
收益率:{'class': {'number': 2, 'student': {'age': 2, 'name': 'May'}}}
其中唯一键student_1
和student_2
:
import simplejson
data = '''{
"class": {
"number": 2,
"student_1": {
"name": "Tom",
"age": 1
},
"student_2": {
"name": "May",
"age": 2
}
}
}'''
data_in = simplejson.loads(data)
print(data_in)
收益率:{'class': {'student_1': {'age': 1, 'name': 'Tom'}, 'number': 2, 'student_2': {'age': 2, 'name': 'May'}}}
更新:
同意@Tomas Hesse认为数组是更好的形式。看起来像这样:
import simplejson
data = '''{
"class": {
"number": 2,
"students" : [
{ "name" : "Tom", "age" : 1 },
{ "name" : "May", "age" : 2 }
]
}
}'''
data_in = simplejson.loads(data)
print(data_in)