Arrays 嵌套在JSON中
我无法让下面的JSON进行验证。它在这里崩溃:Arrays 嵌套在JSON中,arrays,json,Arrays,Json,我无法让下面的JSON进行验证。它在这里崩溃: "Head Coach": ["Baseball", "Basketball - Boys", "Basketball", "Volleyball - Girls", "Volleyball", "Spiritline"] 没有最后一个数组就可以了。有什么想法吗 试试下面的方法 {“userprofileid”:12547,“电子邮件”:cusdtrojans@gmail.com“,”第一名“:”玛丽贝尔“,”中间名“:”null“,”姓氏“:
"Head Coach": ["Baseball", "Basketball - Boys", "Basketball", "Volleyball - Girls", "Volleyball", "Spiritline"]
没有最后一个数组就可以了。有什么想法吗
试试下面的方法 {“userprofileid”:12547,“电子邮件”:cusdtrojans@gmail.com“,”第一名“:”玛丽贝尔“,”中间名“:”null“,”姓氏“:”瓦斯克斯“,”前缀“:”null“,”后缀“:”null“,”学校“:”[{”学校ID“:417,“名称“:”克利夫顿高中“,”地址“:”4523阿帕洛萨街“,”地址“:”null“,”城市“:”克利夫顿“,”州“:”AZ“,”zip“:”85533“,”角色“:”[“体育总监”、“首席秘书”、“剧院”、“媒体顾问”、“网站管理员”、“主教练”、“棒球”、“篮球男孩”、“篮球”、“排球女孩”、“排球”、“精神线”]}
“主教练”:
应该是“主教练”,
这是格式化的版本
{
"userprofileid":12547,
"email":"cusdtrojans@gmail.com",
"first_name":"Maribel",
"middle_name":null,
"last_name":"Vasquez",
"prefix":null,
"suffix":null,
"schools":[
{
"schoolid":417,
"name":"Clifton High School",
"addr":"4523 Appaloosa St.",
"addr2":null,
"city":"Clifton",
"state":"AZ",
"zip":"85533",
"roles":[
"Athletic Director",
"Principal Secretary",
"Theatre",
"Media Adviser",
"Webmaster",
"Head Coach",
[
"Baseball",
"Basketball - Boys",
"Basketball",
"Volleyball - Girls",
"Volleyball",
"Spiritline"
]
]
}
]
}
试试这个,这样可以确保你有一个“主教练”的名字来引用这个列表
{
"userprofileid": 12547,
"email": "cusdtrojans@gmail.com",
"first_name": "Maribel",
"middle_name": null,
"last_name": "Vasquez",
"prefix": null,
"suffix": null,
"schools": [{
"schoolid": 417,
"name": "Clifton High School",
"addr": "4523 Appaloosa St.",
"addr2": null,
"city": "Clifton",
"state": "AZ",
"zip": "85533",
"roles": [
"Athletic Director",
"Principal Secretary",
"Theatre", "Media Adviser",
"Webmaster", {
"Head Coach": [
"Baseball",
"Basketball - Boys",
"Basketball",
"Volleyball - Girls",
"Volleyball",
"Spiritline"
]
}
]
}]
}
显然,以下内容无效
"roles": ["Athletic Director",
"Principal Secretary",
"Theatre",
"Media Adviser",
"Webmaster",
"Head Coach": ["Baseball", "Basketball - Boys", "Basketball", "Volleyball - Girls", "Volleyball", "Spiritline"]
]
因为角色
是一个数组,但您试图在其中包含东西“Head Coach”:
,它看起来像对象中的属性
问题在于您的数据模型:您希望将单个角色指定为数组中的字符串,但对于主教练的角色,您需要额外的信息,即此人担任主教练的运动。我建议将角色
设为对象,角色作为属性,值为true
I如果您只想指定该角色,而不需要其他信息:
"roles": {
"Athletic Director": true,
"Principal Secretary": true,
"Theatre": true,
"Media Adviser": true,
"Webmaster": true,
"Head Coach": [
"Baseball",
"Basketball - Boys",
"Basketball", "Volleyball - Girls",
"Volleyball",
"Spiritline"
]
}
下面是一个真正简单的示例:
Object.keys(roles).forEach(role => {
const value = roles[role];
if (Array.isArray(value)) {
console.log(role, 'of', value.join(', '));
} else if (value === true) {
console.log(role);
} else {
console.error(role, "has unknown value");
}
});
任何JSON验证器都应该指出错误的确切位置。您可以复制并粘贴JSON,它会告诉您您的JSON是否有效。此JSON进行验证,但它可能不符合OP的要求,即将各种运动(如棒球
与主教练
的角色相关联。我们不能cess在这个JSON中的主教练?如果我们可以,那么我们也可以访问列表成员。非常感谢帮助/课程@torazaburo。非常感谢。您关于更改数据模型的建议非常有意义。我将很快实施。
Object.keys(roles).forEach(role => {
const value = roles[role];
if (Array.isArray(value)) {
console.log(role, 'of', value.join(', '));
} else if (value === true) {
console.log(role);
} else {
console.error(role, "has unknown value");
}
});