【问题标题】:Convert object to json?将对象转换为json?
【发布时间】:2017-08-31 11:36:59
【问题描述】:

我应该如何转换成这种格式

    {"Campaign Technical Approach Plan": "PM",  
  "Campaign Monitoring": "India",   
  "Email HTML Build": "India",  
  "Email Quality Assurance": "India"}

从这种格式

    [[Campaign Technical Approach Plan,__PM__LOCATION__],   
  [Campaign Monitoring,India],  
  [Email HTML Build,India], 
  [Email Quality Assurance,India]]

【问题讨论】:

  • 你试过什么?
  • 是的,我试过 JSON.stringyfy()。但这不起作用。
  • JSON.stringify 会将 JSON 对象转换为字符串,但您的要求不同。
  • [[]] 实体是字符串文字,还是缺少引号分隔符的字符串数组?

标签: javascript arrays json


【解决方案1】:

您可以使用Array.prototype.reduce 将数据数组转换为对象。然后使用JSON.stringify():

let data =  [
	['Campaign Technical Approach Plan','__PM__LOCATION__'],   
  	['Campaign Monitoring','India'],  
  	['Email HTML Build','India'], 
  	['Email Quality Assurance','India']
];


let result = JSON.stringify(data.reduce((resultObj, [ key, value ]) => { 
	resultObj[key] = value
	return resultObj;
}, {}));

console.log(result);

【讨论】:

    【解决方案2】:

    您可以使用Array.prototype.reduce()

    代码:

    const arr = [['Campaign Technical Approach Plan', '__PM__LOCATION__'],['Campaign Monitoring', 'India'],['Email HTML Build', 'India'],['Email Quality Assurance', 'India']];
    const result = arr.reduce(function (a, c) {
      a[c[0]] = c[1].replace(/_|LOCATION/g, '');
      return a; 
    }, {});
    
    console.log(result);

    【讨论】:

      【解决方案3】:

      这很简单。只需遍历列表即可构建您的对象。

      var input = [["Campaign Technical Approach Plan","__PM__LOCATION__"],   
        ["Campaign Monitoring","India"],  
        ["Email HTML Build","India"], 
        ["Email Quality Assurance","India"]];
      
      var obj = {};
      
      input.forEach(function(item){
        obj[item[0]] = item[1].replace(/_|LOCATION/g, "");
      });
      
      console.log(obj);

      【讨论】:

      • 输出类似于 {Campaign Execution (Minimum)=PM, Localization process management (0-5)=India, Email Quality Assurance (Minimum)=India} 不是确切的。
      • @Neetu 所以不是 JSON 对象?
      • 我想要这样的输出。
      • {“活动技术方法计划”:“PM”,“活动监控”:“印度”,“电子邮件 HTML 构建”:“印度”,“电子邮件质量保证”:“印度”}
      • @Neetu 是的,在sn-p上面运行后可以在日志中看到。
      【解决方案4】:

      简单。

      var object =  {"Campaign Technical Approach Plan": "PM",  
        "Campaign Monitoring": "India",   
        "Email HTML Build": "India",  
        "Email Quality Assurance": "India"}
      
      var JSON = JSON.stringify(object); //Converted to JSON 
      

      相反(JSON 到 JS 对象)使用 JSON.parse()

      【讨论】:

        猜你喜欢
        • 2017-06-16
        • 2017-01-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-04-24
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多