【问题标题】:from XML to JSON if property begins with XX如果属性以 XX 开头,则从 XML 到 JSON
【发布时间】:2015-12-19 17:43:51
【问题描述】:

我有这个功能

request.execute('[someSP].[spSomeSP]', function(err, dataset) {
      _.map(dataset, function(items) {
        console.log(items);
      });
 });

_.map(...) 返回的位置:

  { BET: 57635034,
    CUSTOMER: 181645,
    SPORT: 'NFL',
    'XX_FILL OPEN': '<element>\r\n\t<element_type>wager_action_button</element_type>\t\r\n\t<element_name>Fill Open</element_name>\r\n\t<element_call>fillOpen(57635034)</element_call>\r\n\t<element_content></element_content>\r\n</element>',
    XX_VIEW: '<element>\r\n\t<element_type>betslip_selection_checkbox</element_type>\t\r\n\t<element_name></element_name>\r\n\t<element_call>addRemoveSelectionFromSlip_checkbox(1738756,0,1,1)</element_call>\r\n\t<element_content>0</element_content>\r\n</element>'}

如您所见,XX_ 开头的属性具有 XML 属性,我想将这些 XML 转换为 JSON。

我尝试过这样的事情,但它记录了-1,我不知道为什么。

      _.map(dataset, function(items) {
        console.log(items.indexOf('XX'));
      });

我需要使用 xml2js = parseString = require('xml2js').parseString

你有什么建议?

【问题讨论】:

    标签: javascript json xml node.js


    【解决方案1】:

    您的indexOf 被针对对象(数组)调用。您需要根据项目中的每个属性名称来调用它:

    _.map(dataset, function(items) {
      for (var item in items) {
        if (items.hasOwnProperty(item) && item.indexOf('XX') === 0) console.log(item, items[item]);
      }
    });
    

    【讨论】:

    • 我不知道为什么,但它没有进入 if :S
    • 嗯,应该... 尝试逐个调试条件
    • 这是false item.indexOf('XX') === 0 为什么?
    • XX_VIEW 是否为假?字符串是什么?
    • 我发布的信息高于我目前所拥有的所有信息。
    猜你喜欢
    • 2020-06-23
    • 2011-08-15
    • 2014-02-13
    • 1970-01-01
    • 2021-11-14
    • 2022-01-13
    • 1970-01-01
    • 2017-04-09
    • 1970-01-01
    相关资源
    最近更新 更多