2014-09-02 4 views
3

JSON 문자열을 바이트 배열로 다시 변환하는 데 문제가 있습니다. 내 바이트 배열 JSON.stringify (바이트) 통해 JSON 문자열로 변환되었습니다. 문자열을 JS로 변환하기 위해 JSON.parse를 사용하면 배열이 아니라 객체 만 가져옵니다. 는 JS 콘솔의 예를 들면 다음과 같습니다자바 스크립트에서 바이트 배열을 JSON으로 변환 후

> var bytes = new Int32Array([101, 102, 103]); 
> var s = JSON.stringify(bytes); 
> s; 
"{"0":101,"1":102,"2":103}" 
> var a = JSON.parse(s); 

> a; 
Object {0: 101, 1: 102, 2: 103} 

어떻게 다시 원래의 바이트 배열을받을 수 있나요?

+2

'a'에 데이터를 새로 만들어야합니다. JSON에는 "유형이 지정된 배열"의 표현이없고 배열 만 있습니다. –

+0

왜 배열 자체를 Int32Array로 변환하지 않고 사용할 수 없습니까? –

+0

b/c JSON 문자열을 그물을 통해 보내려고합니다. – user1510580

답변

5
var arr = []; 
for(var p in Object.getOwnPropertyNames(a)) { 
    arr[p] = a[p]; 
} 
+0

감사합니다. @ gp. 원래는 단순한 함수 호출 (w/o 반복)을 찾고 있었지만 대답은 충분히 간단하고 받아 들일 만합니다. – user1510580

1

당신은으로하는 TypedArray 변환 Array.from을 사용할 수 있습니다 캐릭터 라인 화 프로세스 직전의 배열

JSON.stringify(Array.from(new Int32Array([101, 102, 103]))) 
+0

답을 설명해주십시오. 코드 만 응답하면 미래 방문자에게 유용하지 않습니다. – Liam

관련 문제