이번에는 JS에서 JSON을 사용하는 기술에 대해 자세히 설명하겠습니다. JS에서 JSON을 사용할 때 주의사항은 무엇인가요?
먼저 JS의 일반적인 JS객체 직렬화 문제를 JSON 문자열로 살펴보겠습니다. JSON.stringify를 전달한 후 다음 JS 객체의 문자열은 어떻게 보일까요? 성급하게 복사하여 콘솔에 붙여넣지 마세요. 먼저 코드 편집기나 문서를 열고 작성하고 읽은 다음, 작성한 후 콘솔 출력을 주의 깊게 비교하고 실수가 있으면 댓글을 달아주세요. .
var friend={ firstName: 'Good', 'lastName': 'Man', 'address': undefined, 'phone': ["1234567",undefined], 'fullName': function(){ return this.firstName + ' ' + this.lastName; } }; JSON.stringify(friend);//这一行返回什么呢?
두 번째 질문입니다. 최종 JSON 문자열에서 '친구'의 이름을 모두 대문자로 변경하려면, 즉 "Good"을 "GOOD"로, "Man"을 "MAN"으로 변경하려면 어떻게 해야 할까요? 할 수 있나요?
위의 두 가지 질문을 바탕으로 다시 원본으로 돌아가 JSON이 정확히 무엇인지 질문해 보겠습니다. JSON이 데이터 교환하기 쉬운 이유는 무엇입니까? JSON과 JS 객체의 차이점은 무엇입니까? JS에서 이러한 JSON.parse
、JSON.stringify
和不常见的toJSON
함수의 매개변수와 처리 세부정보는 무엇인가요? 이 "JSON Deep Journey"에 오신 것을 환영합니다. 아래에서는 다음 측면에서 JSON을 이해합니다.
JSON에 대한 공식 소개를 보지 않으셨다면 여기로 가보세요. 공식 소개 단락에서는 JSON이 무엇인지 설명하면서 다음과 같은 측면으로 세분화했습니다.
1. 데이터 형식형식이란 무엇인가요? 데이터가 어떻게 표현되어야 하는지를 표준화하는 것입니다. 예를 들어, 키가 "160cm"이고 몸무게가 "60kg"인 "Two Hundred Six"라는 사람이 있습니다. 이제 이 사람의 정보를 다른 사람에게 전달하려고 합니다. 또는 다른 선택도 가능합니다:
JSON은 바이너리 기반 데이터가 아닌 텍스트 기반 데이터 형식이므로 JSON을 전송할 때는 JSON 형식을 따릅니다. 두 번째 부분에서 이에 대해 이야기하겠습니다.) 문자열, 우리는 종종 "JSON 문자열"이라고 부릅니다.
3. 경량 데이터 형식JSON 이전에는 xml이라는 데이터 형식이 있었는데 지금도 널리 사용되고 있지만 예를 들어 위의 예와 같이 xml은 더 많은 태그가 필요합니다. 을 보면 xml 형식의 데이터에서는 태그 자체가 많은 공간을 차지하는 반면 JSON은 상대적으로 가볍다는 것을 알 수 있습니다. 즉, JSON 형식의 동일한 데이터가 대역폭을 덜 차지한다는 점입니다. 요청과 전송에는 분명한 이점이 있습니다.
4 데이터 교환에 널리 사용됩니다경량은 이미 데이터 교환의 장점이지만 더 중요한 것은 JSON이 읽기 쉽고 쓰기 쉽고 기계 구문 분석이 쉽다는 것입니다. 즉, 이 JSON은 사람과 기계에 유용합니다. 둘 다 친숙하고 가벼우며 언어 독립적이므로(텍스트 기반이기 때문에) JSON은 데이터 교환에 널리 사용됩니다.
프런트 엔드 JS를 사용하는 ajax의 POST 요청을 예로 들고, 백엔드 PHP 처리 요청을 예로 들어 보겠습니다.
프런트 엔드는 전달할 데이터를 래핑하기 위해 JS 개체를 구성합니다. 그런 다음 JS 개체를 JSON 문자열로 변환한 다음 백엔드에 요청을 보냅니다.
백엔드 PHP는 이 JSON 문자열을 수신하고 JSON 문자열을 PHP 개체로 변환한 다음 요청을 처리합니다.
여기서 동일한 데이터가 세 가지 다른 표현 형식을 가지고 있음을 알 수 있습니다. 즉, 프런트엔드 JS 개체, 전송된 JSON 문자열, 백엔드 PHP 개체와 JS 개체는 분명히 동일하지 않습니다. 하지만 모든 사람이 JSON을 사용하여 데이터를 전송하므로 누구나 이 데이터 형식을 이해할 수 있고 JSON 데이터 형식을 자신이 이해할 수 있는 데이터 구조로 쉽게 변환할 수 있습니다. 이는 다양한 언어로 환경에서 데이터를 교환할 때에도 마찬가지입니다. .
2. JSON과 JS 객체 사이의 "가십"
"JSON은 JS의 하위 집합이다"라는 말을 자주 듣곤 하는데, 이 문장에 대해 늘 그렇게 생각했는데, 다들 이 문장을 따르네요. JSON 형식으로 파싱하면 됩니다. 나중에 이상한 점을 발견했습니다...
1. 본질적으로 다른 두 가지가 왜 그렇게 밀접하게 연결되어 있습니까?
JSON과 JS 객체는 본질적으로 전혀 같은 것이 아닙니다. "얼룩말 횡단"과 "얼룩말". "얼룩말 횡단"은 "얼룩말"의 줄무늬를 기준으로 제시되고 명명되지만 얼룩말은 살아 있고 얼룩말 횡단은 무생물입니다.
마찬가지로 "JSON"의 전체 이름은 "JavaScript Object Notation"이므로 형식(구문)은 JS를 기반으로 하지만 형식이고 JS 개체는 인스턴스입니다. 메모리 .
농담입니다. JSON이 PHP를 기반으로 하면 PON이라고 할 수 있고 형식은 다음과 같을 수 있습니다. ['propertyOne' => 'foo', 'propertyTwo' => 42,] 그렇다면 JSON은 이제 PHP에 더 가까워지세요.
또한 JSON은 텍스트 형식이기 때문에 전송할 수 있지만 JS 객체는 구문 측면에서 전송될 수 없지만 JS 객체는 매우 느슨합니다.
그렇다면 서로 다른 두 가지가 왜 그렇게 가까운가요? 결국 JSON은 JS에서 발전했고 비슷한 구문을 갖고 있기 때문입니다.
2. JS 객체와 비교하여 JSON 형식의 엄격한 구문은 무엇입니까? 먼저 "키-값 쌍으로 표현되는 객체" 형식으로 둘의 차이점을 비교해 보겠습니다. 비교한 후 나열하세요.
JS 개체 | ||
---|---|---|
은 큰따옴표로 묶어야 합니다. | 은 작은따옴표 없이 또는 포함하여 허용될 수 있습니다. 큰따옴표 추가 | |
은 숫자 값(십진수), 문자열(큰따옴표), 부울 값 및 null만 가능합니다. | JSON 요구 사항을 충족하는 배열이나 객체일 수도 있습니다.
함수, NaN, Infinity, -Infinity 및 정의되지 않음 |
|
마지막 속성 뒤에 쉼표가 올 수 없습니다 | 알겠습니다 | |
앞에 0은 사용할 수 없으며, 소수점 이하 자릿수가 있어야 합니다 | 제한 없음 |
위 내용은 JS에서 JSON 활용 스킬에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!