繁体   English   中英

JavaScript中的关联数组到JSON

[英]Associative arrays in javascript to JSON

我使用数组作为对象的关联数组,其中键是数据库中对象的ID号。 自然而安静的ID是大量的-因此,通常只有长度为10 ^ 4且只有20个元素的数组才是有效的真实对象。

我想将此数据发送回服务器,但是无论我将js对象转换为JSON所需要的任何插件,我都尝试了所有这些操作,并且它们都生成长度为10 ^ 4的JSON字符串。 如此多的数据无法发送回来。

我需要一种将关联数组转换为JSON并丢弃未定义条目的方法。
有什么建议么 ?

编辑:我的数组看起来像什么的示例:var myAssociativeArray = [undefined,undefined,undefined ....,someobject,some other object ...,undefined,...另一个

听起来好像您有一个常规数组,但是您使用它的方式似乎很稀疏(它可能在内部也可能不在内部)。 这是使用替换函数的方法,该函数将转换为对象:

JSON.stringify(root, function(k,v) 
{ 
  if(v instanceof Array) 
  { 
    var o = {}; 
    for(var ind in v) 
    { 
      if(v.hasOwnProperty(ind)) 
      { 
        o[ind] = v[ind]; 
      }
    } 
    return o; 
  } 
  return v; 
}); 

阅读您的问题,看起来正在使用数组。 这是仅获取数组的已定义条目的一种解决方案(不保证顺序)。

请注意,由于它是一个稀疏数组,例如可以增加到10000,因此最好只枚举属性,而不是实际上从0到9999循环,因为它们中的大多数无论如何都是不确定的。 因此,这对于性能更好。

var definedEntries = {};

for(var prop in dataObject) {
    if(dataObject.hasOwnProperty(prop)) {
        definedEntries[prop] = dataObject[prop];
    }
}

然后将definedEntries发送到服务器。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM