2014-11-13 3 views
-10

Я не совсем понимаю, как сделать строку JSON. Я получаю ошибку, и я хочу узнать, как исправить, и это сделать.Правильно ли это строка 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" 
      } 
     ] 
    }]}; 

Это метод прибудете

var driverData = JSON.parse(drivers); 

    function getDriverData() { 
     return driverData; 
    } 

    return { 
     getDriverData: getDriverData 
    }; 

И в этом контроллере я стараюсь, чтобы получить его, так что я могу видеть, если он работает

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

Поправьте меня, и объяснить, как сделать JSON, и я хочу, чтобы он был вложен, если это правильный термин. Поэтому у каждого водителя есть автомобиль или несколько автомобилей/транспортных средств. Поэтому, если я получу 1 водителя, я хочу увидеть его данные и его информацию о принадлежащих вам продуктах.

+7

Попробуйте использовать http://jsonlint.com :) – apparatix

+5

Если это объект для запуска, зачем вы его разбираете? – epascarello

+8

Это не «строка JSON», это объект JavaScript. – Pointy

ответ

1

Ваша «строка JSON» представляется javascript-кодом, который вы бы указали в теге скрипта, который создает объект javascript drivers с свойством driver, представляющим собой массив других объектов. Чтобы быть JSON, вы удаляете var drivers = и точку с запятой в конце, оставляя только то, что вы установили для переменной, чтобы создать этот объект.

Например, предположим, что у вас есть переменная «человек», которая является объектом с свойствами «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.

+0

Спасибо, это помогло мне помочь понять JSON. Особенно с помощью консоли, способной конвертировать объекты js в JSON, это просто потрясающе. –

0

Нет, это объект Javascript, который можно преобразовать в строку JSON, используя JSON.stringify(object). Если вы пытаетесь получить к нему доступ через Javascript, вы можете также пропустить JSON и просто использовать этот объект. Если вы хотите проверить, правильно ли используется строка JSON, используйте jsonlint.com.

0

1) Это объект javascript, а не строка JSON.

2) Вам не хватает запятой после возраста Боба и Роба. Тем не менее, Мария все хороша.

Смежные вопросы