2017-09-15 79 views
1

所以我目前正在將一個基於python的圖形用戶界面(GUI)修改爲基於JavaScript的web GUI。該程序將大型JSON消息發送到某個服務器進行處理。服務器臨危其中一些值設置像這樣的消息:分配空數組到空的JSON對象全部爲空

"someVar": [] 

不過,我不知道如何以同樣的方式從我自己的GUI JavaScript中發送此。我的解決方案,導致此:

"someVar": null 

服務器不喜歡這樣,但我不能找到一種方法,沒有它默認爲空分配一個空數組。

的對象開始了,像這樣:

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

服務器得到這個時候,通常打印出

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

所以可以說這個對象存儲在一個名爲curConfig

變量

我想做這樣的事情:

curConfig['var1'] = [] 

但是,當它被髮送到服務器時,仍然給我一個空值而不是[]。

+0

爲什麼你就不能使用'[]'作爲數組的初始值,然後按新的元素進去? – Barmar

+0

發佈您的代碼,以便我們可以看到您如何初始化對象並解釋如何解決該問題。 – Barmar

+0

服務器爲什麼打印對象兩次?這聽起來像是由於某種原因服務器正在用'null'替換一個空數組。 – Barmar

回答

2

如果您有想要使用JSON#stringify時更改爲空數組大量null值,可以使用替代功能(第2 PARAM):

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);

0

要初始化在JavaScript空數組簡單地把它寫像

var arr = []; 

示例JSON

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

初始化這樣的對象:

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

此外,

curConfig.var1 = []; 

應該工作,我不知道爲什麼它不適合你。