2014-08-31 3 views
1

저는 비교적 JSON을 처음 사용합니다. 필자는 최근 JQuery와 JavaScript를 응용 프로그램에 추가하여 상호 작용이 빠르고 빨라졌습니다. JSON이 기본 유형 (예 : 문자열, 숫자 등)에서 작동하는 방식을 이해합니다. 즉, MAP 즉 키와 값이있는 곳입니다. 예 : http://www.w3schools.com/json/. 여기에는 종업원 목록이 있으며, 각 종업원은 이름과 성이라는 두 개의 키와 이름과 성의 두 값을가집니다.JSON 및 이진 데이터 인코딩

그러나 이진 데이터가 방정식에 어떻게 맞는지 이해할 수 없습니다. 질문에 같은 application/octet-stream : 비디오, 유형입니다 : Binary Data in JSON String. Something better than Base64하고 값이 있었다 : 나는라는 Employee 객체에 새 속성을 추가하는 것이 었 말

TWFuIGlzIGRpc3Rpbmd1aXNoZWQsIG5vdCBvbmx5IGJ5IGhpcyByZWFzb24sIGJ1dCBieSB0aGlz 
    IHNpbmd1bGFyIHBhc3Npb24gZnJvbSBvdGhlciBhbmltYWxzLCB3aGljaCBpcyBhIGx1c3Qgb2Yg 
    dGhlIG1pbmQsIHRoYXQgYnkgYSBwZXJzZXZlcmFuY2Ugb2YgZGVsaWdodCBpbiB0aGUgY29udGlu 
    dWVkIGFuZCBpbmRlZmF0aWdhYmxlIGdlbmVyYXRpb24gb2Yga25vd2xlZGdlLCBleGNlZWRzIHRo 
    ZSBzaG9ydCB2ZWhlbWVuY2Ugb2YgYW55IGNhcm5hbCBwbGVhc3VyZS4= 

방법이 데이터는 MAP으로 표시됩니다? 이 질문은 아마 간단한 질문 일 수 있습니다. 그러나 JSON 책을 가지고 있지만 그렇게 자세하게 설명하지는 않습니다. 나는 웹에서 답을 찾지 못했다.

+0

. 그러나 JSON에서 비디오를 인코딩하는 것은 좋지 않다고 생각합니다. 대신 JSON에 링크를 넣고 별도로로드하십시오. – Bergi

+0

@Bergi, JSON 문자열에 원하는 것을 넣을 수 있습니다. 즉, { "data": { "field1": "value1", "field2": "value2 "}} – w0051977

+1

@ w0051977 그가 의미하는 바는 json 속성의 문자열 값으로 사용한다는 것입니다. '{ "비디오": "TWFuIGlzIGRpc3Rpbmd1aXNoZWQsIG5vdCBvbmx5IGJ5IGhpcyByZWFzb24sIGJ1dCBieSB0aGlzIHNpbmd1bGFyIHBhc3Npb24gZnJvbSBvdGhlciBhbmltYWxzLCB3aGljaCBpcyBhIGx1c3Qgb2YgdGhlIG1pbmQsIHRoYXQgYnkgYSBwZXJzZXZlcmFuY2Ugb2YgZGVsaWdodCBpbiB0aGUgY29udGludWVkIGFuZCBpbmRlZmF0aWdhYmxlIGdlbmVyYXRpb24gb2Yga25vd2xlZGdlLCBleGNlZWRzIHRoZSBzaG9ydCB2ZWhlbWVuY2Ugb2YgYW55IGNhcm5hbCBwbGVhc3VyZS4 ="}처럼' – soulcheck

답변

0

"지도"(KV 쌍)가 너무 많은 가치를 부여한다고 생각합니다. 앞에서 설명한 것처럼 JSON에는 숫자, 문자열, truefalse, null, 배열 및 객체와 같은 소수 유형이 있습니다. 객체와 "맵"을 같은 것으로 생각할 수 있습니다. 예를 들어

개체는 다른 형식으로 구성 될 수 있습니다. 개체는 문자열 인 name 속성을 가진 개체입니다.

JSON에서 이진 데이터를 나타내려면 기존 유형 중 하나 (일반적으로 Base64를 통해 문자열로 사용)를 사용해야합니다. linked question에 주어진 예제에서 객체의 value 속성은 파일의 Base64 인코딩 값입니다.

{ 
    "mimetype" : "application/octet-stream”, 
    "metadata" : [ ], 
    "value" : "TWFuIGlzIGRpc3Rpbmd1aXNoZWQsIG5vdCBvbmx5IGJ5IGhpcyByZWFzb24sIGJ1dCBieSB0aGlzIHNpbmd1bGFyIHBhc3Npb24gZnJvbSBvdGhlciBhbmltYWxzLCB3aGljaCBpcyBhIGx1c3Qgb2YgdGhlIG1pbmQsIHRoYXQgYnkgYSBwZXJzZXZlcmFuY2Ugb2YgZGVsaWdodCBpbiB0aGUgY29udGludWVkIGFuZCBpbmRlZmF0aWdhYmxlIGdlbmVyYXRpb24gb2Yga25vd2xlZGdlLCBleGNlZWRzIHRoZSBzaG9ydCB2ZWhlbWVuY2Ugb2YgYW55IGNhcm5hbCBwbGVhc3VyZS4=", 
} 

자바 스크립트에 익숙하다면, 다음 문자열로 당신에게 Base64로 인코딩 된 값을 줄 것이다 :이 데이터는없는지도에 문자열 갈 예정이다

var obj = JSON.parse(json); 
var value = obj.value; // This is a string 
+0

고맙지 만 위의 예에서 핵심은 무엇입니까? 값이 이진 데이터라는 것을 알고 있습니다. – w0051977

+0

키는'value'이고 값은 바이너리가 아닌 문자열입니다. – Whymarrh