js object에서 json 문자열로 변환
3311 단어 object
function Serialize(obj) {
switch (obj.constructor) {
case Object:
var str = "{";
for ( var o in obj) {
str += o + ":" + Serialize(obj[o]) + ",";
}
if (str.substr(str.length - 1) == ",")
str = str.substr(0, str.length - 1);
return str + "}";
break;
case Array:
var str = "[";
for ( var o in obj) {
str += Serialize(obj[o]) + ",";
}
if (str.substr(str.length - 1) == ",")
str = str.substr(0, str.length - 1);
return str + "]";
break;
case Boolean:
return "\"" + obj.toString() + "\"";
break;
case Date:
return "\"" + obj.toString() + "\"";
break;
case Function:
break;
case Number:
return "\"" + obj.toString() + "\"";
break;
case String:
return "\"" + obj.toString() + "\"";
break;
}
}
2. typeof로 유형을 판단하고 function 유형을 필터링
function Serialize(obj) {
//var result="";
//alert(typeof obj);
//alert(typeof(typeof obj));
switch (typeof obj) {
case 'object':
//alert("Object!!!!");
var str = "{";
for ( var o in obj) {
// alert(o.toString);
if(typeof obj[o] !='function')
str += "\"" + o +"\"" + ":" + Serialize(obj[o]) + ",";
}
if (str.substr(str.length - 1) == ",")
str = str.substr(0, str.length - 1);
return str + "}";
break;
case 'array':
var str = "[";
for ( var o in obj) {
str += Serialize(obj[o]) + ",";
}
if (str.substr(str.length - 1) == ",")
str = str.substr(0, str.length - 1);
return str + "]";
break;
case 'boolean':
return "\"" + obj.toString() + "\"";
break;
case 'date':
return "\"" + obj.toString() + "\"";
break;
case 'function':
//alert(obj.toString);
return "\"\"";
break;
case 'number':
return "\"" + obj.toString() + "\"";
break;
case 'string':
return "\"" + obj.toString() + "\"";
break;
case 'undefined':
return "\"\"";
break;
}
//alert(result);
//return result;
}
문제가 발생했습니다. typeof는array 유형을 판단할 수 없습니다.
그래서 Object에서array 형식인지 아닌지 판단합니다.
그룹 여부를 판단하는 방법은constructor를 제외하고는 다음과 같다.
function isArray(o) {
return Object.prototype.toString.call(o) === '[object Array]';
}
혹은
instanceof
참조:
http://www.cnblogs.com/mofish/p/3388427.html
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
localStorage에 객체를 추가하는 방법은 무엇입니까?이 노트에서는 localStorage에 객체를 삽입하는 방법을 보여드리겠습니다. 경우에 따라 로컬 스토리지 또는 세션 스토리지에 데이터를 개체로 저장해야 할 수 있습니다. 어떻게 이것을 달성할 수 있습니까? 객체가 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.