개발관련/other

JSON이란 무엇이며 사용해야 하는 이유

Rateye 2021. 9. 15. 10:37
728x90
반응형
질문 : JSON이란 무엇이며 왜 사용해야합니까?

위키피디아에서 구글 검색을했고 공식 문서를 읽었지만 여전히 JSON이 무엇인지, 왜 JSON을 사용해야하는지 이해하지 못했습니다.

한동안 PHP, MySQL 및 Javascript / HTML을 사용하여 애플리케이션을 구축해 왔으며 JSON이 내 삶을 더 편하게 만들거나 내 코드 또는 사용자 인터페이스를 개선 할 수 있다면 그것에 대해 알고 싶습니다. 누군가 나에게 간결한 설명을 줄 수 있습니까?

답변

JSON (JavaScript Object Notation)은 데이터 교환에 사용되는 경량 형식입니다. 자바 스크립트 언어의 하위 집합 (객체가 자바 스크립트에서 빌드되는 방식)을 기반으로합니다. MDN에 명시된 바와 같이 일부 JavaScript는 JSON이 아니고 일부 JSON은 JavaScript가 아닙니다.

이것이 사용되는 예는 웹 서비스 응답입니다. 예전에는 웹 서비스가 데이터를 다시 전송하기위한 기본 데이터 형식으로 XML을 사용했지만 JSON이 등장한 이후 ( JSON 형식은 Douglas Crockford의 RFC 4627 에 지정됨) 훨씬 더 많은 형식으로 선호되었습니다. 경량

공식 JSON 웹 사이트 에서 더 많은 정보를 찾을 수 있습니다.

JSON은 두 가지 구조로 구축됩니다.

  • 이름 / 값 쌍의 모음입니다. 다양한 언어에서 이것은 객체, 레코드, 구조체, 사전, 해시 테이블, 키순 목록 또는 연관 배열로 실현됩니다.
  • 정렬 된 값 목록입니다. 대부분의 언어에서 이것은 배열, 벡터, 목록 또는 시퀀스로 실현됩니다.



JSON 개체 다이어그램

JSON 배열 다이어그램

JSON 값 다이어그램

JSON 문자열 다이어그램

JSON 번호 다이어그램

다음은 JSON 데이터의 예입니다.

{
     "firstName": "John",
     "lastName": "Smith",
     "address": {
         "streetAddress": "21 2nd Street",
         "city": "New York",
         "state": "NY",
         "postalCode": 10021
     },
     "phoneNumbers": [
         "212 555-1234",
         "646 555-4567"
     ]
 }

JSON in JavaScript

JSON (Javascript)은 문자열입니다!

사람들은 종종 모든 Javascript 객체가 JSON이고 JSON이 Javascript 객체라고 가정합니다. 이것은 올바르지 않습니다.

자바 스크립트에서 var x = {x:y}JSON 이 아니고 자바 스크립트 객체 입니다. 둘은 같은 것이 아닙니다. 이에 상응하는 JSON (Javascript 언어로 표시)은 var x = '{"x":"y"}' 입니다. x 는 그 자체로 객체가 아닌 문자열 유형의 객체입니다. 이것을 완전한 자바 스크립트 객체로 바꾸려면 먼저 파싱해야합니다. var x = JSON.parse('{"x":"y"}'); , x 는 이제 객체이지만 더 이상 JSON이 아닙니다.

Javascript 객체 Vs JSON 참조


JSON 및 JavaScript로 작업 할 때 eval 함수를 사용하여 콜백에 반환 된 결과를 평가하고 싶을 수 있지만 JSON에는 유효하지만 JSON에는 유효하지 않은 두 문자 (U + 2028 및 U + 2029)가 있으므로 권장되지 않습니다. JavaScript (여기에서 자세한 내용을 읽으십시오).

따라서 평가하기 전에 유효한 JSON을 확인하는 Crockford의 스크립트를 항상 사용해야합니다. 스크립트 설명에 대한 링크는 여기에 있으며 여기에는 js 파일에 대한 직접 링크가 있습니다. 오늘날 모든 주요 브라우저에는 이를위한 자체 구현 이 있습니다.

JSON 파서를 사용하는 방법에 대한 예 (위 코드 스 니펫의 json 사용) :

//The callback function that will be executed once data is received from the server
var callback = function (result) {
    var johnny = JSON.parse(result);
    //Now, the variable 'johnny' is an object that contains all of the properties 
    //from the above code snippet (the json example)
    alert(johnny.firstName + ' ' + johnny.lastName); //Will alert 'John Smith'
};

JSON 파서는 또 다른 매우 유용한 방법 인 stringify 합니다. 이 메서드는 JavaScript 개체를 매개 변수로 받아들이고 JSON 형식의 문자열을 다시 출력합니다. 이는 데이터를 서버로 다시 보내려 는 경우에 유용합니다.

var anObject = {name: "Andreas", surname : "Grech", age : 20};
                                                                                                     var jsonFormat = JSON.stringify(anObject);
                                                                                                     //The above method will output this: {"name":"Andreas","surname":"Grech","age":20}
                                                                                                     

위의 두 메서드 ( parsestringify )도 최종 결과의 모든 수준에서 모든 키와 값에 대해 호출되는 함수 인 두 번째 매개 변수를 취하며 각 값은 입력 된 함수의 결과로 대체됩니다. (자세한 내용은 여기 )

Btw, JSON이 자바 스크립트만을위한 것이라고 생각하는 모든 분들을 위해, 다른 방법을 설명하고 확인 하는이 게시물을 확인하세요.


References

출처 : https://stackoverflow.com/questions/383692/what-is-json-and-why-would-i-use-it
728x90
반응형