我添加了一个字段" max"到JS数组原型。当我对数组进行字符串化时,我很难看到这个添加。我试图覆盖toJSON功能,但无济于事。
Array.prototype.max = 0;
Array.prototype.toJSON = function(){
var o = this;
o.max = this.max;
return o;
};
var a = [1,2,3];
a.max = 10;
console.log(JSON.stringify(a));
//'[1,2,3]'
我想避免像{array_field:a,max_field:max}这样的东西,只使用数组对象 - 这可能吗?我做错了什么?
答案 0 :(得分:1)
这里有几个选项,它们都不会完全符合您的要求。
由于JSON数组严格限于整数键[1],因此您无法直接向下发送max
的值。
您的选择包括:
object
代替array
。你放弃了所有阵列魔法,但它可能对你更好。max
和数组值的配置对象max
。 JSON将使用null
编码未使用的数组元素。JSONS
+附加内容中对内容进行编码。实际上,这几乎与第二种选择相同。[1]与JavaScript对象不同