2017-10-27 1 views
1

Ich entwickle derzeit eine App mit Angular 4. Ich möchte wissen, ob es möglich ist, eine Karte in JSON in eckigen zu konvertieren? dies ist meine Karte stuctureKonvertieren Sie eine Karte in ein JSON-Objekt in Winkel

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

json Struktur

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

In diesem Fall, wenn Sie nur Strings verwenden Für Schlüssel wäre es nicht das Beste, ein Objekt 'selectedLanguageDetails = {}' zu verwenden und dann könnte man einfach JSON.string machen. Würde viel Beinarbeit sparen. Sie können Objektschlüssel mit dynamischen Daten auch mit '[a]:' test '' setzen. Ich habe nie eine Notwendigkeit gefunden, Map über {} zu verwenden. Es ist nicht wie Java, wo Sie neue Karten usw. –

Antwort

2

auf ein Objekt zu konvertieren - die Karte verteilt eine Reihe von [key, value] Paaren und Array#reduce zu einem Objekt zu erhalten.

in eine Zeichenfolge zu konvertieren - Statt zu reduzieren, Array#map verwenden, um jedes Paar in eine Zeichenfolge zu konvertieren, und Array#join das Ergebnis:

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);

Verwandte Themen