访问JS对象的元素

时间:2017-09-04 08:52:54

标签: javascript arrays json node.js

我在对象中创建了数组,

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

3 个答案:

答案 0 :(得分:3)

两件事:

  1. 您不想JSON.stringify,除非您在某个地方发送结果字符串。请记住,JSON是用于数据交换的文本表示法; JSON.stringify为您提供了一个发送给某个接收者的字符串。如果您拥有JSON字符串,则不要访问其中对象的属性。

    如果您接收该JSON字符串,则需要通过JSON.parse对其进行解析,然后访问结果中的属性。

  2. 除了JSON之外,您可能不想按照添加数据的方式添加数据。您将三个单独的对象添加为数组中的三个条目,每个条目都有一个属性。您可能希望使用所有三个属性推送一个对象:

    obj_report_dialog.array_report_dialog.push({
        from: fromDate,
        to: toDate,
        fabrika: fabrika
    });
    

    然后,您可以obj_report_dialog.array_report_dialog[0].fromobj_report_dialog.array_report_dialog[0].toobj_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].fromobj_report_dialog.array_report_dialog[1].toobj_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