JSON이란
JSON: JavaScript 객체 표기법.
JSON 형식은 중괄호 "{}"로 둘러싸인 항목 목록이며, 각 항목은 쉼표(,)로 구분되며, 항목은 콜론(:)으로 구분된 속성 이름과 속성 값입니다. 이는 전형적인 사전 표현이며 JavaScript의 객체가 사전 구조임을 다시 한 번 보여줍니다. 아무리 복잡한 객체라도 JSON 코드로 생성하고 할당할 수 있습니다.
JSON 구조
JSON에는 두 가지 구조가 있습니다
Json은 단순히 JavaScript에서 객체와 배열을 의미하므로 이 두 구조는 객체와 배열을 통해 다양하고 복잡한 구조를 표현할 수 있습니다
1. 객체: 객체는 "{}"로 묶인 내용으로 js로 표현됩니다. 데이터 구조는 객체 내에서 키-값 쌍 구조입니다. 지향 언어에서 key는 객체의 속성이고 value는 해당 속성 값이므로 이해하기 쉽습니다. 속성 값을 얻는 값 방법은 object.key입니다. 문자열, 배열, 객체.
2. 배열: js의 배열은 괄호 "[]"로 묶인 내용이고, 데이터 구조는 ["java", "javascript", "vb",...], 값 방법 및 모든 언어가 동일합니다. 마찬가지로 인덱스를 사용하여 가져오면 필드 값의 유형은 숫자, 문자열, 배열, 객체가 될 수 있습니다.
객체와 배열이라는 두 가지 구조를 통해 복잡한 데이터 구조를 결합할 수 있습니다.
JSON 구문 규칙
JSON 구문은 JavaScript 객체 표기법 구문의 하위 집합입니다.
이름/값 쌍의 데이터
쉼표로 구분된 데이터
중괄호는 객체를 저장합니다
대괄호는 배열을 저장합니다
JSON 값은 다음과 같습니다.
숫자(정수 또는 부동 소수점)
문자열(큰따옴표 안)
논리값(참 또는 거짓)
배열(대괄호 안)
객체(중괄호 안)
널
1) 병렬 데이터는 쉼표(", ")로 구분됩니다.
2) 매핑은 콜론(": ")으로 표시됩니다.
3) 병렬 데이터의 집합(배열)은 대괄호("[]")로 표시됩니다.
4) 매핑된 컬렉션(객체)은 중괄호("{}")로 표시됩니다.
JSON 예시
속성 없이 개체 만들기:
객체 생성 및 속성과 초기값 설정:
객체 생성 및 속성과 메서드 설정:
다른 개체, 개체 등의 중첩된 배열 만들기:
객체는 순서가 지정되지 않은 이름/값 쌍 집합입니다. 객체는 왼쪽 분기에서 시작하여 오른쪽 분기로 끝납니다.
값은 큰따옴표로 묶인 문자열이거나 숫자 값, true 또는 false, 배열 또는 객체일 수 있습니다
데이터 유형:
구조적인 관점에서 볼 때 모든 데이터는 궁극적으로 세 가지 유형으로 분해될 수 있습니다.
첫 번째 유형은 단일 단어 "Beijing"과 같은 단일 문자열 또는 숫자인 스칼라입니다.
두 번째 유형은 시퀀스(Sequence)입니다. 즉, "Beijing, Shanghai"와 같이 여러 관련 데이터가 특정 순서로 함께 배열되어 배열 또는 목록이라고도 합니다.
세 번째 유형은 이름/값 쌍인 매핑입니다. 즉, 데이터에는 이름과 해당 값(해시라고도 함) 또는 사전(예: "Capital: Beijing")이 있습니다.
프로그래밍 언어에서는 배열과 객체만 있으면 모든 데이터를 저장할 수 있습니다.
배열과 객체의 또 다른 차이점은 배열 데이터에는 "이름"이 없지만 객체 데이터에는 "이름"이 있다는 것입니다.
JavaScript에는 정의되지 않음, Null, 부울, 숫자 및 문자열의 5가지 단순 데이터 유형(기본 데이터 유형이라고도 함)이 있습니다. 복잡한 데이터 유형인 Object도 있습니다. Object는 기본적으로 순서가 지정되지 않은 이름-값 쌍 세트로 구성됩니다.
값에 typeof 연산자를 사용하면 다음 문자열 중 하나가 반환될 수 있습니다.
● "정의되지 않음" - 값이 정의되지 않은 경우
● "boolean" - 값이 부울 값인 경우
● "문자열" - 값이 문자열인 경우
● "숫자" - 값이 숫자 값인 경우
● "객체" - 값이 객체이거나 null인 경우
● "함수" - 값이 함수인 경우
정의되지 않은 유형:
`정의되지 않음` 유형에는 값이 하나만 있습니다. var를 사용하여 변수를 선언했지만 초기화하지 않은 경우
이 변수의 값은 정의되지 않았습니다
널 유형
Null 유형은 값이 하나만 있는 두 번째 데이터 유형이며 이 특수 값은 null입니다. 논리적인 관점에서 볼 때 null 값은 null 개체 포인터를 나타내며, 이것이 null을 감지하기 위해 typeof 연산자를 사용할 때 "object"가 반환되는 이유입니다. 예:
숫자 유형
이 유형은 정수 및 부동 소수점 값을 나타내는 데 사용되며 NaN(Not a Number)이라는 특수한 값도 있습니다. 이 값은 값을 반환해야 하는 피연산자가 값을 반환하지 않음을 나타내는 데 사용됩니다(그래서 오류가 발생하지 않습니다).
문자열 유형
String 유형은 0개 이상의 16비트 유니코드 문자로 구성된 문자 시퀀스, 즉 문자열을 나타내는 데 사용됩니다. 문자열은 작은따옴표(')나 큰따옴표(")로 표시할 수 있습니다.
숫자, 부울, 객체 및 문자열 값에는 모두 toString() 메서드가 있습니다. 하지만 null 및 정의되지 않은 값에는 이 방법이 없습니다.
대부분의 경우 toString() 메서드를 호출할 때 매개변수를 전달할 필요가 없습니다. 그러나 값의 toString() 메서드를 호출할 때 출력 값의 기본 매개변수를 전달할 수 있습니다.
변환할 값이 null인지 정의되지 않은지 알 수 없는 경우 변환 함수 String()을 사용할 수도 있습니다. 이 함수는 모든 유형의 값을 문자열로 변환할 수 있습니다. String() 함수는 다음 변환 규칙을 따릅니다.
● 값에 toString() 메서드가 있는 경우 매개변수 없이 이 메서드를 호출하고 해당 결과를 반환합니다.
● 값이 null인 경우 "null"을 반환합니다.
● 값이 정의되지 않은 경우 "정의되지 않음"을 반환
객체 유형
객체는 실제로 데이터와 기능의 모음입니다. 객체는 생성할 객체 유형의 이름 뒤에 new 연산자를 실행하여 생성할 수 있습니다. 객체 유형의 인스턴스를 생성하고 여기에 속성 및/또는 메서드를 추가하여 사용자 정의 객체를 생성할 수 있습니다.
var o = new Object();
연산자 유형