JQuery - Как преобразовать массив объектов в строку Json

123
17

Существует SymbologyObject и ValuesArray:

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"}]}

Что случилось?

спросил(а) 2017-09-19T12:27:00+03:00 3 года, 1 месяц назад
1
Решение
120

Прежде всего, ваша инициализация переменной неверна.
вы должны инициализировать, как показано ниже.

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"}}}

ответил(а) 2017-09-19T13:03:00+03:00 3 года, 1 месяц назад
41

Во-первых, вы проверяете свой JSON, поскольку он не является допустимым JSOn. '

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

'

ответил(а) 2017-09-19T13:04:00+03:00 3 года, 1 месяц назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема