2014-09-29 4 views
-1

Это объект JavaScript или JSON?Объект JavaScript или JSON

var j = { 
    "countries": { 
     "country": [{ 
      "cname": "Japan", 
      "capital": "Tokyo"      
     }, 
     { 
      "cname": "India", 
      "capital": "Delhi" 
     }] 
    } 
}; 

Если это JSON, то как сделать его объектом JavaScript. Если это объект JavaScript, как это сделать JSON?

+0

Umm ... Это ОБА :) – antyrat

+0

@antyrat это неверно. –

+0

, если его объект использует JSON.stringify или использует JSON.parse, если его строка JSON –

ответ

1

Это объект Javascript, в частности литерал объекта, который присваивается переменной.

JSON формы текст, который представляет объект:

{ 
    "countries": { 
     "country": [{ 
      "cname": "Japan", 
      "capital": "Tokyo"      
     }, 
     { 
      "cname": "India", 
      "capital": "Delhi" 
     }] 
    } 
} 

Вы можете иметь JSON в виде строки кода Javascript, например:

var json = '{"countries": {"country": [{"cname": "Japan","capital": "Tokyo"},{"cname": "India","capital": "Delhi"}]}}'; 

Чтобы включить строку, содержащую JSON в объект Javascript, вы проанализируете его. Объект JSON доступен в последних версиях браузеров, где вы можете использовать parse метод:

var j = JSON.parse(json); 

Чтобы превратить объект Javascript в JSON, вы можете использовать stringify метод:

var json = JSON.stringify(j); 

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

+0

Хорошо, позвольте мне получить это правильно. Если бы я использовал код, который я опубликовал первоначально, я бы назвал его объектом JavaScript. Но если я удалю переменную «var j =», это действительно JSON? – CuriousDev

+0

@ пользователь1089173 это правильно. –

+0

@ user1089173: Да, любой текст JSON может использоваться как код Javascript. Разница в основном заключается в том, как вы ее используете, а не в синтаксисе (за исключением того, что формат JSON является подмножеством синтаксиса Javascript). – Guffa

5

Это объект JavaScript. JSON - это формат сериализации данных.

Чтобы быть более точным - это назначение переменной, в котором вы назначаете литерал объекта JavaScript переменной с именем j. Пожалуйста, обратитесь к тегу за дополнительной информацией о разнице.

Некоторых биты, которые смущают человек:

  • JSON является способом передачи данных с одного языка на другой, она свободно на основе JS объекта буквальной нотации.
  • JSON - текстовый формат, так же как "var x = 3;" - строка JS внутри js "null" - строка JSON внутри JS. Вы можете сериализовать/проанализировать его с помощью JSON.parse и JSON.stringify.
0

Если файл/строка содержит следующий текст, то JSON

{ 
    "countries": { 
     "country": [{ 
      "cname": "Japan", 
      "capital": "Tokyo"      
     }, 
     { 
      "cname": "India", 
      "capital": "Delhi" 
     }] 
    } 
} 

Если выполнить следующие JavaScript, значение переменной j будет объект JavaScript, который имеет свойство countries.

var j = { 
    "countries": { 
     "country": [{ 
      "cname": "Japan", 
      "capital": "Tokyo"      
     }, 
     { 
      "cname": "India", 
      "capital": "Delhi" 
     }] 
    } 
}; 

JSON - это формат обмена данными. Он не зависит от языка. Это на основе на объекте JavaScript-литерального обозначения, но JSON is absolutely not JavaScript or a subset of it.


Вы можете преобразовать объект JavaScript в JSON с помощью JSON.stringify(). Вы можете преобразовать объект JSON в объект JavaScript, используя JSON.parse().

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