jsoncpp 및 서버 클라이언트 간 json 패키지 전송 실현

4400 단어
JSON이 뭐야?
JSON은 데이터 교환에 사용되는 텍스트 형식입니다. (본질은 파일 조직 방식입니다. 예를 들어 익숙한 txt, csv, doc, docx 파일 등입니다.) 번거롭고 육중한 XML 형식을 대체하기 위해서입니다.이런 격식은 사람이 쉽게 읽고 작성할 수 있을 뿐만 아니라 기계도 쉽게 해석하고 생성할 수 있어 현재 매우 유행하는 데이터 격식, 특히 전방 분야에서.JSON은 대상을 전달하는 문법입니다. 대상은name/value 쌍, 그룹 및 기타 대상일 수 있으며, 현재 브라우저는 json 해석을 가지고 있습니다.
간단하게 말하면 json은 클라이언트와 서버가 모두 식별하고 해석할 수 있는 데이터 형식으로 데이터 형식을 정의하기 어려운 번거로움을 피한다.예를 들어 만약에 모든 클라이언트가 서버에 이름, 나이, 비밀번호 등 정보를 한 번씩 보내고 싶다면 서버는 어떤 데이터 구조로 수신합니까?어떤 사람들은 구조체를 사용한다고 말하지만, 구조체 중의 각 변수는 우리가 얼마나 크게 정의합니까?그렇죠, 대부분이 적합하지 않기 때문에 json과 같은 통일된 데이터 형식이 있으면 쌍방이 json의 규칙에 따라 분석하면 쌍방이 보낸 바이트(네트워크에서 바이트로 전송)를 얻을 수 있고 모든 데이터의 크기를 정의하기 위해 고민할 필요가 없습니다(송신 수신은 모두 하나의 json 대상이므로 크기가 일치하지 않습니다).json을 하나의 용기로 이해할 수 있습니다. 용기를 여는 방식에 따라 용기를 열어 데이터를 얻을 수 있습니다.
밤을 들까? 
{
    "firstname":"John",
    "lastname":"smith",
    "isAlive":true,
    "age":25,
    "address":{
     "streetaddress":"21 street",   //    
     "city":"XI'AN",       //    
    },
    "phonenum":{
    {
        "type":"home",  //    
        "number": "212555666" 
    },
    {
        "type":"office",  //    
        "number":"645111999"
    }      
    },
    "children":{
    [{"name":"mary","age",2},{"name":"bob","age":4}]  //  
    },
    "spouse":null
}

이것은 json으로 저장된 데이터는 한 사람의 John Smith의 개인 정보, 예를 들어 이름, 살아 있는지, 나이, 주소와 전화번호 등 정보를 묘사한다.그 중에서 주소address와 전화번호 아이폰num은 거리, 도시, 가정전화, 사무전화 정보를 포함한다.
Excel이나 sql 서버 등 구조화된 데이터베이스에 저장된 구조화된 데이터만 접한 적이 있다면 json 형식의 데이터를 처음 보면 참신할 것이다.이런 데이터 조직 방식은 조리가 뚜렷하고 자연계에서 사람이나 사물 등 실체의 속성 관계를 더욱 잘 나타낼 수 있다.나무 모양의 구조로 이해할 수 있는데 한 그루는 가지가 있고 가지에는 잎이 있는 나무다.
알아봤지?그럼 다시 봤을 때 JSON인 줄 알았어.주요 섹션:
괄호, 대괄호, 콜론 및 쉼표
  • 꽃괄호는 하나의'용기'
  • 를 나타낸다
  • 네모난 괄호 마운트 그룹
  • 이름과 값을 사칭으로 구분
  • 그룹 요소는 쉼표를 통해 구분
  • json과 XML을 구분합니까?
    <1> XML이란?
    XML도 데이터 및 데이터 설명이 포함된 텍스트 서식 지정이며 확장 가능한 태그 언어입니다.확장 태그 언어는 하이퍼텍스트 태그 언어(eg:HTML)의 대체가 아니라 하이퍼텍스트 태그 언어를 보완합니다.HTML과 같은 하이퍼텍스트 태그 언어는 웹 페이지의 편집(데이터를 표시하는 데 사용되고 데이터의 외관에 초점을 맞추는 디자인)에 사용되지 않는다. 주로 데이터 포맷 저장(데이터를 전송하고 저장하는 데 사용되며 데이터의 내용에 초점을 맞추는 디자인)에 사용되며, 현재는 프로필(밑바닥 데이터 기술)이나 데이터 구조 정의(데이터 캐리어)로 많이 사용되고 있다.네트워크에서 전송하는 것은 네트워크 전송의 중간 언어다.
    밤을 들어 설명하다.
    예를 들어 우리는 상대방에게 데이터를 전송해야 한다. 데이터 내용은'too young,too simple,sometimes naive'이다. 이 말을 속성에 따라 세 개의 데이터로 나누면 바로 나이 too young,too simple,결과 sometimes naive이다.
    우리는 프로그램이 사람답지 않고 글자의 뜻을 체득하고 데이터를 자동으로 분리할 수 있다는 것을 알고 있기 때문에 프로그램의 분할을 도와야 하기 때문에 다양한 데이터 형식과 분할 방식이 생겼다.
    예를 들어'too young,too simple,sometimes naive'라는 데이터를 쉼표에 따라 나누면 첫 번째 부분은 나이, 두 번째 부분은 경력, 세 번째 부분은 결과로 나눌 수 있다.
    이런 방식은 데이터를 수용하고 해석할 수 있지만 직관적이지 않고 통용성도 좋지 않다.이러한 상황을 바탕으로 xml이라는 데이터 형식이 생겼는데 위의 데이터를 XML로 표시하면 이렇게 할 수 있다

    그럴 수도 있어요.
    
        
        
        
    
    

    두 가지 방식은 모두 xml로 매우 직관적이고 데이터에 대한 설명을 덧붙였으며 통용되는 형식 규범을 갖추어 프로그램을 해석할 수 있다.
    일반적인 순수한 텍스트 저장 데이터와 달리 XML과 json은 계산 프로그램이 각 부분의 내용을 구분할 수 있도록 데이터의 분리와 분류를 했다
    다음과 같은 여러 가지 방법으로 분할할 수 있습니다.
  • XML 형식으로 데이터 분할
  • JSON 형식으로 데이터 분할
  • xml은 저장, 전송, 교환 데이터에 사용할 수 있습니다. 데이터의 구조만 설명하고 관심을 가지기 때문에 플랫폼과 상관없이 크로스 플랫폼을 실현할 수 있습니다. 그래서 Windows 플랫폼은 좋아하고 Linux 플랫폼은 좋아하며 각종 시스템(비운영체제 포함)이 모두 그것을 좋아합니다. 이것은 확장성이 좋고 인류에게 우호적이며 구조가 뚜렷하고 읽기 쉽습니다.
    작은 지식:
    최초로 유니버설 네트워크가 등장했을 때 유니버설 네트워크에서 데이터를 전송하기 위해 수신자가 이해할 수 있도록 사람들이 이런 자체 포맷으로 설명된 파일 포맷을 만들었다고 한다.당시 사람들은 xml이 천하를 통일할 수 있기를 기대했다. 그 결과 html과 브라우저가 등장했고 html은 표준적인 인터넷 프로토콜이 되어 xml은 아무 일도 없었다.지금은 xml이 도구라서 뭘 해도 돼요.데이터를 저장하고 검색할 수 있고 전송 약정 형식도 할 수 있고 프로필도 할 수 있다.
    <2>json과 xml의 공통점과 json이 xml보다 어디가 좋아요?
    먼저 XML과 JSON은 구조화된 방법으로 데이터를 표시하고 그들의 값은 모두 열거할 수 있으며'인간적으로 읽을 수 있다'는 것이다. 둘 다 끼워 넣을 수 있고 (등급이 있고 값에 값을 저장할 수 있다) 다양한 프로그래밍 언어에 의해 해석되고 사용될 수 있으며 AJAX 방법으로 전달할 수 있다(예를 들어 httpWebRequest).
    그러나 JSON의 간단한 문법 형식과 뚜렷한 차원 구조는 XML보다 읽기 쉽고 데이터 교환에 있어 JSON이 사용하는 문자가 XML보다 훨씬 적기 때문에 (XML 파일보다 작고 XML보다 확실히 가볍다) 전송 수량이 차지하는 대역폭을 크게 절약할 수 있다.XML은 때때로 물건을 설명하기가 너무 힘들고 검증이 복잡하며, 특히 끝 표시가 대량으로 불필요하다.

    좋은 웹페이지 즐겨찾기