我在对象中创建了数组,
var obj_report_dailog = { array_report_dailog : [] }
然后将数据推送到对象,
obj_report_dialog.array_report_dialog.push({from: fromDate})
obj_report_dialog.array_report_dialog.push({to: toDate})
obj_report_dialog.array_report_dialog.push({fabrika: fabrika})
然后,
var json = JSON.stringify(obj_report_dialog);
如何访问该对象的元素?
console.log("işte bu: " + json);
输出:
işte bu: {"array_report_dialog":[{"from":"2017-08-01"},{"to":"2017-09-21"},{"fabrika":["Balçova"]}]}
答案 0 :(得分:3)
两件事:
您不想JSON.stringify
,除非您在某个地方发送结果字符串。请记住,JSON是用于数据交换的文本表示法; JSON.stringify
为您提供了一个发送给某个接收者的字符串。如果您拥有JSON字符串,则不要访问其中对象的属性。
如果您接收该JSON字符串,则需要通过JSON.parse
对其进行解析,然后访问结果中的属性。
除了JSON之外,您可能不想按照添加数据的方式添加数据。您将三个单独的对象添加为数组中的三个条目,每个条目都有一个属性。您可能希望使用所有三个属性推送一个对象:
obj_report_dialog.array_report_dialog.push({
from: fromDate,
to: toDate,
fabrika: fabrika
});
然后,您可以obj_report_dialog.array_report_dialog[0].from
,obj_report_dialog.array_report_dialog[0].to
和obj_report_dialog.array_report_dialog[0].fabrika
访问它们。或者更有可能的是,你有这样的循环:
obj_report_dialog.array_report_dialog.forEach(function(entry) {
// Use entry.from, entry.to, and entry.fabrika here
});
(有关循环数组的更多选项,请参阅this answer。)
但是,如果您确实想将它们作为单独的对象推送,则可以obj_report_dialog.array_report_dialog[0].from
,obj_report_dialog.array_report_dialog[1].to
和obj_report_dialog.array_report_dialog[2].fabrika
访问它们(注意索引会上升。)
答案 1 :(得分:1)
如果你stringify
json
,它会创建对象的字符串表示。
要访问字符串中的数据,我们通常使用JSON.parse
从字符串创建json对象。这是您在开始时的obj_report_dailog
。
答案 2 :(得分:0)
您可以使用JSON.parse()
从json创建对象JSON.parse(json).array_report_dialog