簡體   English   中英

jQuery-如何將對象數組轉換為Json字符串

[英]Jquery - How to convert Array of Object to Json string

SymbologyObjectValuesArray

var SymbologyObject = {};
var ValuesArray = [];

如下所示放入它們:

var ValueOfField = "tree";
ValuesArray[ValueOfField] = [];

var localStyle = {};
localStyle.fill = "#ffff";
localStyle.stroke = "#cccc";
localStyle.width = 3;
localStyle.value = ValueOfField;

ValuesArray[ValueOfField] = localStyle;

SymbologyObject.type = "Unique";
SymbologyObject.label = "test";

SymbologyObject.attr = "attribute";

SymbologyObject.values = ValuesArray;

當我使用console.log(SymbologyObject); 輸出為:

attr:"attribute"
label:"test"
type:"Unique"
values:
tree:{fill: "#ffff", stroke: "#cccc", width: "3", value: "tree"}

我將其轉換為json:

JSON.stringify(SymbologyObject);

上面代碼的輸出:

{"type":"Unique","label":"test","attr":"attribute","values":[]}

但我想下面的輸出:

{"type":"Unique","label":"test","attr":"attribute","values":[tree:{"fill": "#ffff", "stroke": "#cccc", "width": "3", "value": "tree"}]}

怎么了?

首先,您的變量Initialize錯誤。
您必須像下面進行初始化。

var SymbologyObject = {};
var ValuesArray = {}; //<< CHANGE

其次,請參見下面的更改。

var ValueOfField = "tree";
ValuesArray[ValueOfField] = {}; //<<CHANGE

var localStyle = {};
localStyle.fill = "#ffff";
localStyle.stroke = "#cccc";
localStyle.width = 3;
localStyle.value = ValueOfField;

ValuesArray[ValueOfField] = localStyle;

SymbologyObject.type = "Unique";
SymbologyObject.label = "test";

SymbologyObject.attr = "attribute";

SymbologyObject.values = ValuesArray;

因此,輸出將如下所示。

{"type":"Unique","label":"test","attr":"attribute","values":{"tree1":{"fill":"#ffff","stroke":"#cccc","width":3,"value":"tree1"},"tree":{"fill":"#ffff","stroke":"#cccc","width":3,"value":"tree"}}}

首先,您檢查JSON,因為它不是有效的JSOn。 `

{
    "type": "Unique",
    "label": "test",
    "attr": "attribute",
    "values": [tree: {
        "fill": "#ffff",
        "stroke": "#cccc",
        "width": "3",
        "value": "tree"
    }]
}

`

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM