JSON 객체와 JavaScript 객체의 차이점은 무엇입니까?
JSON 및 JavaScript 오브젝트는 처음입니다.
- JSON과 JavaScript 객체의 차이점을 설명해 주시겠습니까?
- 어떤 용도입니까?
- 둘 중 하나가 더 나은가요?아니면 상황에 따라 달라지나요?
- 어떤 상황에서 어떤 것을 사용해야 할까요?
- 애초에 왜 JSON이 만들어졌나요?그것의 주된 목적은 무엇이었나요?
- JavaScript 객체가 아닌 JSON을 사용해야 하는 경우를 예를 들어줄 수 있습니까?
먼저 JSON이 무엇인지 알아야 합니다.
- 이것은 언어에 구애받지 않는 데이터 교환 형식입니다.
JSON의 구문은 JavaScript Object Literal 표기에서 영감을 얻었지만 서로 차이가 있습니다.
예를 들어 JSON에서는 모든 키를 따옴표로 묶어야 하지만 객체 리터럴에서는 이 작업이 필요하지 않습니다.
// JSON:
{ "foo": "bar" }
// Object literal:
var o = { foo: "bar" };
JavaScript(자세한 내용은 ECMAScript 3rd)에서는 따옴표는 JSON에서는 필수입니다.Edition)을 통해 예약된 단어를 속성 이름으로 사용할 수 없습니다. 예를 들어 다음과 같습니다.
var o = { if: "foo" }; // SyntaxError in ES3
한편, 문자열 리터럴을 속성명으로 사용하면(속성명을 따옴표로 묶음) 문제가 발생하지 않습니다.
var o = { "if": "foo" };
호환성(그리고 간단한 평가도 가능)을 위해?따옴표는 필수입니다.
JSON의 데이터 유형도 다음 값으로 제한됩니다.
string
number
object
array
- 문자 그대로:
true
false
null
의 문법Strings
변화들.이들은 큰따옴표로 구분해야 하며 JavaScript에서는 작은따옴표 또는 큰따옴표를 자유롭게 사용할 수 있습니다.
// Invalid JSON:
{ "foo": 'bar' }
승인된 JSON 문법Numbers
또한 변경 사항, JavaScript에서는 16진수 리터럴을 사용할 수 있습니다.0xFF
또는 (악명 높은) 옥탈 리터럴(예:010
. JSON에서는 10진수 리터럴만 사용할 수 있습니다.
// Invalid JSON:
{ "foo": 0xFF }
8진법이 잘못 허용된 버그 구현(Firefox 3.5+, IE8+, json2.js)이 있습니다.JSON.parse('01')
를 생성해야 합니다.SyntaxError
.
JSON은 객체를 문자열로 표현한 것입니다.상호 운용 가능한 시리얼라이제이션 형식입니다.javascript에만 관련된 것은 아닙니다.예를 들어 에는 JSON 시리얼라이저가 있습니다.시리얼화/디시리얼화를 가능하게 하는 NET.NET 오브젝트
즉, 객체에서 문자열로 변환하고 회선을 통해 전송할 때 편리한 형식입니다.
표현에 .단순히 javascript를 .eval()
JSON j j j j j j j j j j j j j j j j j j j j j j j j j j.
JSON은 데이터 교환 형식입니다.실행하여 오브젝트를 되돌릴 수 있는 YAML 또는 JavaScript 코드의 서브셋처럼 보입니다.JavaScript 개체는 JavaScript의 개체일 뿐입니다.
JSON을 데이터 교환 형식으로 사용하면 구조화된 데이터를 텍스트 형식으로 교환할 수 있습니다.지금은 JavaScript와 상당히 분리되어 있습니다.JavaScript 객체를 사용하면 JavaScript 프로그램을 실행하는 동안 구조화된 데이터를 만들고 작업할 수 있습니다.
언급URL : https://stackoverflow.com/questions/3975859/what-are-the-differences-between-json-and-javascript-object
'bestsource' 카테고리의 다른 글
Angular-Translate를 사용하여 HTML을 포함하는 문자열을 처리하는 방법 (0) | 2023.03.10 |
---|---|
Redux TypeError: 정의되지 않은 속성 '적용'을 읽을 수 없습니다. (0) | 2023.03.10 |
intellij - 스프링이 인식되지 않음(매핑되지 않은 스프링 구성) (0) | 2023.03.10 |
Angular $http가 PUT/POST 대신 OPTIONS를 보내고 있습니다. (0) | 2023.03.10 |
Angular: & 를 사용하여 다이렉트 링크 함수 내에서 컨트롤러 함수를 호출합니다. (0) | 2023.03.10 |