【问题标题】:Convert a map to a json object in angular将地图转换为角度的json对象
【发布时间】:2018-04-08 19:12:23
【问题描述】:

我目前正在使用 Angular 4 开发应用程序。我想知道是否可以将地图转换为 Angular 中的 json? 这是我的地图结构

  selectedLanguageDetails.set("languageName", element.languageName);
          selectedLanguageDetails.set("languageCode", element.languageCode);
          selectedLanguageDetails.set("internalId", element.internalId);

json结构

 "languages": [
    {
    "internalId": 101,
    "languageCode": "ms",
    "languageName": "Malay"
    }
    ],

【问题讨论】:

  • 在这种情况下,如果您只是使用字符串作为键,您最好只使用对象selectedLanguageDetails={},然后您可以只使用 JSON.stringify 它。会节省很多腿部工作。您还可以使用 '[a]: 'test'' 使用动态数据设置对象键。我从未发现需要使用 Map over {}。它不像 java 你必须更新地图等。

标签: javascript json angular angular2-template


【解决方案1】:

要转换为对象 - 展开 Map 以获取 [key, value] 对的数组,并将 Array#reduce 传递给对象。

要转换为字符串 - 使用 Array#map 将每对转换为字符串,而不是使用 reduce,然后 Array#join 得到结果:

const selectedLanguageDetails = new Map(); 
 
 selectedLanguageDetails.set("languageName", "English");
          selectedLanguageDetails.set("languageCode", "en");
          selectedLanguageDetails.set("internalId", 15);
          
const obj = [...selectedLanguageDetails].reduce((o, [key, value]) => (o[key] = value, o), {});

const string = [...selectedLanguageDetails].map(([key, value]) => `${key}:${value}`).join(', ');

console.log(obj);

console.log(string);

【讨论】:

    【解决方案2】:

    为了将 Map 转换为 JSON 对象或字符串,您可以使用以下代码。

    let jsonObject = {};  
    selectedLanguageDetails.forEach((value, key) => {  
           jsonObject[key] = value  
    });  
    string jsonString = JSON.stringify(jsonObject);
    

    【讨论】:

      猜你喜欢
      • 2021-02-09
      • 2017-11-24
      • 2017-02-24
      • 1970-01-01
      • 2014-11-21
      • 2018-12-12
      • 2017-06-16
      • 1970-01-01
      • 2020-08-01
      相关资源
      最近更新 更多