JSON 구현이 희소 배열을 만족스럽게 처리 할 수 있는지 알아야합니다. 질문 : How to represent a sparse array in JSON?하지만 배열보다는 개체를 사용하는 것은 나를위한 옵션이 아닙니다. 배열이 필요해.희소 배열을 처리하는 JSON 구현
최소 요구 사항은 구현시 "정의되지 않은"채우기를 채우는 것입니다. 그렇지 않으면 JSON 인코딩 전에 나 자신을 채우는 방어 코드를 작성하고 있습니다.
JSON 구현이 희소 배열을 만족스럽게 처리 할 수 있는지 알아야합니다. 질문 : How to represent a sparse array in JSON?하지만 배열보다는 개체를 사용하는 것은 나를위한 옵션이 아닙니다. 배열이 필요해.희소 배열을 처리하는 JSON 구현
최소 요구 사항은 구현시 "정의되지 않은"채우기를 채우는 것입니다. 그렇지 않으면 JSON 인코딩 전에 나 자신을 채우는 방어 코드를 작성하고 있습니다.
속성 이름이 인덱스이고 속성 값이 값인 개체를 사용할 수 있습니까? 그런 다음 매개 변수를 통해 스파 스 배열을 만들면 매개 변수를 통해 실행할 수 있습니까?
function getSparseArray(obj) {
var ary = [];
for (prop in obj) {
var i = parseInt(prop,10);
if (!isNaN(i)) {
ary[i] = obj[prop];
}
}
return ary;
}
당신은
{ "5":"Five", "11":"Eleven", "99":"Ninety-Nine"}
처럼 뭔가를 보내고 단지 세 개의 값으로 생성 된 배열을 다시 얻을 것 :
ary[5] = "Five"
ary[11] = "Eleven"
ary[99] = "Ninety-Nine"
ary[0] = 'undefined'
ary[98] = 'undefined'
etc.
여기
ary
(100)의 길이를 가질 것,하지만 그것은 당신의 관점에서 "희소 한"배열이 될 것입니다.
... "undefined"는 JSON 값 – Pointy
이 아닙니다. 따라서 null 대신 틈새를 채울 것입니다. –
글쎄, 문제는 JSON이 JSON이고, 임의의 JSON 파서가이를 이해할 수 있도록 "희소 배열"을 직접 표현할 수있는 방법이 없다는 것입니다. 그러나 JSON의 "in"및 "out"방식으로 배열을 변환하는 데 만족하면 @ Robusto의 대답이 보길 원하는 것입니다. – Pointy