【问题标题】:how to extract object array(results) from iron ajax response object如何从 Iron ajax 响应对象中提取对象数组(结果)
【发布时间】:2017-12-03 08:51:17
【问题描述】:

enter image description herebelow 代码 sn-p 用于从 Iron ajax 调用中获取 json 数据。我能够在 mapResponse 中获取 json 对象值。 我想获取 json 数据中的结果数组的值,并希望将此结果对象值作为输入属性传递到另一个聚合物组件中

从 Iron ajax 加载数据的代码

<iron-ajax
      id="originalData"
      auto
      url="{{originalDataURL}}"
      handle-as="json"
      last-response="{{originalData}}" on-response="mapResponse">
    </iron-ajax>


Json file


{
  "tags": [
    {
      "name": "test",
      "results": [
        {
          "groups": [
            {
              "name": "type",
              "type": "number"
            }
          ],
          "values": [
            [
              946890000000,
              99.93584833,
              3
            ],
            [
              946846800000,
              99.94809842,
              3
            ],
            [
              946803600000,
              99.96034846,
              3
            ],
            [
              946760400000,
              99.97259848,
              3
            ],
            [
              946717200000,
              99.98484848,
              3
            ]
          ],
          "attributes": {}
        }
      ],
      "stats": {
        "rawCount": 5
      }
    }
  ]
}


 <script>
    Polymer({
 is: 'test-view',
 properties: {
 results: {
        type: Array
      },

     mapResponse: function (data) {
        var dummy = data.detail.response;
        console.log("resposne is ",dummy);
        results = dummy.results;
        console.log("array is ",results);
},

我尝试在控制台日志中获取上述结果数组对象值,但未定义。在这里,我能够获取 dummy 的值,其中我正在获取完整的 json 对象(标签)我只想从此(标签)对象获取结果数组对象。

谁能建议我如何只获得结果数组值? 提前致谢。

【问题讨论】:

  • 假人的类型是什么,如果是字符串,则执行dummy=JSON.parse(dummy)。下面var dummy = data.detail.response;
  • dummy 是数组,我们以这种方式在控制台上获取数据作为附加的虚拟响应屏幕截图。我想要这个虚拟对象的结果数组对象。
  • 你能登录假人吗?什么是typeof(data)
  • 是的,我可以在记录 console.log("resposne is ",dummy); --- -- 响应是 {tags: Array(1)}
  • 我附上了屏幕截图链接,以获得更多我在虚拟i.stack.imgur.com/uWSit.png中得到的内容@

标签: javascript ajax polymer-1.0


【解决方案1】:

应该是results = dummy.tags[0].results; 而不是results = dummy.tags[0].results;

如果标签有多个结果数组,您也可以使用results = dummy.tags.map(x=&gt;x.results);

【讨论】:

  • 感谢 vibhor,我能够获得之前我传递给整个 orginaldata json 对象到聚合物组件的结果值,因为我以这种方式传递 original-data="[[orignalData]]''因为以前我们在 json 中有数组列表,现在我们有整个 json 对象数组,如上面的 json 文件,所以现在我在 originalData 中传递这个结果值,以这种方式 original-data = "[[results]]" 在那个聚合物组件中它不是能够填充原始数据中的值。
  • 您可以参考您的图片说明。 Dummy 是一个对象,tasks 是对象的属性,它本身就是数组。现在您可以遍历数组以获取结果(使用映射或循环),或者如果它只有一个元素访问它。
  • 这两行是相同的:你的意思是“应该是 results = dummy.tags[0].results; 而不是 results = dummy.tags[0].results;.”
猜你喜欢
  • 1970-01-01
  • 2020-06-08
  • 1970-01-01
  • 1970-01-01
  • 2018-06-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多