将空数组分配给以null为空的JSON对象

时间:2017-09-15 22:18:19

标签: javascript arrays json

所以我正在调整基于python的GUI到基于javascript的Web GUI。程序将大型JSON消息发送到某个服务器进行处理。服务器接收消息,其中某些值设置如下:

"someVar": []

但是,我不知道如何在javascript中以相同的方式从我自己的GUI发送它。我的解决方案导致了这个:

"someVar": null

服务器不喜欢这样,但我找不到一种方法来分配一个空数组而不将它默认为null。

对象就像这样开始:

{
  var1: null
  var2: "someString"
  var3: 1.3
  ...
}

当服务器获取此信息时,通常会打印出来

{
  var1: []
  var2: "someString"
  var3: 1.3
  ...
}

所以我们假设这个对象存储在一个名为curConfig

的变量中

我想做这样的事情:

curConfig['var1'] = []

但是当它被发送到服务器时,仍然会给我一个空值而不是[]。

3 个答案:

答案 0 :(得分:2)

如果在使用JSON#stringify时要将大量null值更改为空数组,则可以使用替换函数(第2个参数):

JSON.stringify(value[, replacer[, space]])

该函数接收密钥和值,您可以决定要返回的值。



var data = {
  var1: null,
  var2: "someString",
  var3: 1.3
};

var reslut = JSON.stringify(data, function(key, value) {
  if (value === null) {
    return [];
  }
  return value;
});

console.log(reslut);




答案 1 :(得分:0)

要在javascript中初始化一个空数组,只需将其写为

即可
var arr = [];

JSON的示例

var obj = {
  arr: []
};
JSON.stringify(obj); // "{ "arr": [] }"

答案 2 :(得分:0)

像这样初始化对象:

{
  var1: [],
  var2: "someString",
  var3: 1.3,
  ...
}

此外,

curConfig.var1 = [];

应该有效,我不知道为什么它不适合你。