Javascript 这是正确的JSON字符串吗?

Javascript 这是正确的JSON字符串吗?,javascript,json,angularjs,Javascript,Json,Angularjs,我不太清楚如何生成JSON字符串。我得到了错误,我想找出如何纠正,并使它 这是我的JSON字符串: var drivers = { "driver" : [ { "id" : 1, "name" : "Bob", "age" : "34" "car" : [ { "make" : "BMW", "model" : "3.20",

我不太清楚如何生成JSON字符串。我得到了错误,我想找出如何纠正,并使它

这是我的JSON字符串:

var drivers = { "driver" : [
    {
        "id" : 1,
        "name" : "Bob",
        "age" : "34"
        "car" : [
            {
                "make" : "BMW",
                "model" : "3.20",
                "colour" : "Silver"
            }
        ]
    },
    {
        "id" : 2,
        "name" : "Rob",
        "age" : "22"
        "car" : [
            {
                "make" : "Peugeot",
                "model" : "306",
                "colour" : "Blue"
            }
        ]
    },
    {
        "id" : 3,
        "name" : "Maria",
        "age" : "23",
        "car" : [
            {
                "make" : "Mazda",
                "model" : "3",
                "colour" : "Red"
            }
        ]
    }]};
这是get方法:

var driverData = JSON.parse(drivers);

function getDriverData() {
    return driverData;
}

return {
    getDriverData: getDriverData
};
在这个控制器中,我尝试获取它,以便查看它是否工作:

var drivers = myDriveApi.getDriverData();
console.log(driverData);

请纠正我并解释如何生成JSON字符串,如果这是正确的术语,我希望它嵌套。所以每个司机都有一辆车,或者多辆车。因此,如果我有一个司机,我想查看他的详细信息和他在自有车辆上的信息。

不,这是一个JavaScript对象,可以使用
JSON.stringify(object)
将其转换为JSON字符串

如果您试图通过JavaScript访问它,那么最好跳过JSON,只使用该对象。如果要测试JSON字符串是否正确,请使用jsonlint.com

  • 它是一个JavaScript对象,而不是JSON字符串

  • 在Bob和Rob的年龄之后,你缺少逗号了。不过玛丽亚很好

  • 您的“JSON字符串”似乎是JavaScript代码,您可以在脚本标记中创建一个
    drivers
    JavaScript对象,该对象具有一个名为
    drivers
    的属性,该属性是其他对象的数组。要成为JSON,您需要删除
    var drivers=
    和末尾的分号,只留下创建该对象所需的变量

    例如,假设您有一个“person”变量,它是一个具有“firstName”和“lastName”属性的对象。这是您将放入脚本中以创建该变量的代码:

    var person = { firstName: "Jason", lastName: "Goemaat" };
    
    字符串,甚至JSON字符串都用单引号或双引号包围的脚本表示。要查看该对象的JSON的字符串值,可以执行以下操作:

    var json = JSON.stringify(person);
    
    这将为您提供一个有效的JSON字符串,该字符串将在控制台中显示:

    {"firstName":"Jason","lastName":"Goemaat"}
    
    要直接设置变量,需要将其括在单引号或双引号中,但如果字符串包含这些引号,则需要对其进行转义。因为它只包含双引号,所以我将用单引号将其括起来,将其分配给脚本中的一个变量,然后将其解析为一个对象

    var json = '{"firstName":"Jason","lastName":"Goemaat"}';
    var person = JSON.parse(json);
    

    JSON属性名需要用引号括起来。如果不是,大多数解析器都可以工作,但最好尽可能正确。您可以使用上的在线工具检查有效的JSON。

    尝试使用:)如果它是一个要启动的对象,为什么要解析它?这不是一个“JSON字符串”,而是一个JavaScript对象。您有什么问题?多个位置的hanks中“age”和“car”之间缺少逗号,这对帮助我理解JSON有很大帮助。特别是在控制台的帮助下,能够将js对象转换为JSON,这真是太神奇了。