这是一个正确的JSON字符串

时间:2014-11-13 22:13:21

标签: javascript json angularjs

我不太清楚如何制作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字符串,如果这是正确的术语,我希望它嵌套。所以每个司机都有一辆车或多辆车/车。因此,如果我得到1名司机,我希望看到他的详细信息和他所拥有的车辆的信息。

3 个答案:

答案 0 :(得分:1)

您的“JSON字符串”似乎是一个javascript代码,您将在脚本标记中创建一个drivers javascript对象,其中包含一个名为driver的属性,该属性是其他对象的数组。要成为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属性名称需要用引号括起来。大多数解析器都可以工作,如果不是,但最好尽可能正确。您可以使用jsonlint上的在线工具来检查有效的JSON。

答案 1 :(得分:0)

不,这是一个Javascript对象,可以使用JSON.stringify(object)转换为JSON字符串。如果您尝试通过Javascript访问它,您可以完全跳过JSON并只使用该对象。如果你想测试JSON字符串是否合适,请使用jsonlint.com。

答案 2 :(得分:0)

1)它是一个javascript对象,而不是JSON字符串。

2)在Bob和Rob的年龄过后,你会错过逗号。玛丽亚虽然很好。

相关问题