2016-06-08 13 views
1

ich von einem Dienst ein JSON-Objekt übergeben konvertieren zurück und konvertiert es in eine Zeichenfolge JSON.stringify aber die erforderliche Ausgabe verwendet, wird nicht wie im ersten Beispiel wie unten dargestellt zu erwarten:Wie ein JSON-Objekt Zeichenfolge in ein Javascript-Array

Was es auf dem JSON-Objekt wie nach stringify Aufruf sieht:

[{"RID":"98798","appName":"TestApp"},{"RID":"98799","appName":"TestApp Two"}]

Was es muss aussehen:

["98798 TestApp","98799 TestApp Two"];

Wie kann ich ein JSON-Objekt in ein vorzeigbares Javascript-Array konvertieren?

Was ich habe versucht -

  • Ich versuchte zunächst stringify Aufruf, die nicht das erforderliche Format nicht geben, wie oben gezeigt:

    var ridAppList = JSON.stringify(dataRID);

  • ich auch versucht, die Umwandlung dieser Stringed zu einem JS-Array mit ParseJSON, aber ich bekomme ein Ergebnis wie - [object Obect], [object Object]:

    var ridAppList = $.parseJSON('[' + ridAppList + ']');

Dies ist die komplette Zuordnung für Kontext. Innerhalb der Erfolgsfunktion eines Ajax-Objekt ein JSON GET rufen

zurückgegeben
  success: function (result) { 
       var dataRID; 
       dataRID = result; 
       ridAppList = JSON.stringify(dataRID); 
       alert(ridAppList); 

      }, 

Antwort

1

Nachdem Sie parsedJSON Sie map() wie diese

var string = [{"RID":"98798","appName":"TestApp"},{"RID":"98799","appName":"TestApp Two"}]; 
 

 
var result = string.map(function(e) { 
 
    return e.RID += ' ' + e.appName; 
 
}); 
 

 
console.log(result)

Oder mit ES6 verwenden können, können Sie einfach Tun Sie dies

var string = [{"RID":"98798","appName":"TestApp"},{"RID":"98799","appName":"TestApp Two"}]; 
 

 
var result = string.map(e => e.RID += ' ' + e.appName); 
 
console.log(result)

4

könnten Sie das Array verwenden und eine neue mit Array#map

var array = [{ "RID": "98798", "appName": "TestApp" }, { "RID": "98799", "appName": "TestApp Two" }], 
 
    result = array.map(function (a) { 
 
     return a.RID + ' ' + a.appName; 
 
    }); 
 
    
 
console.log(result);

2

Die hier Antworten sind für Ihr Beispiel gültig bauen, aber hier ist eine Lösung für beliebige Eigenschaft Menge und Namen.

var flatObjects = [ 
 
     {"RID":"98798","appName":"TestApp"}, 
 
     {"RID":"98799","appName":"TestApp Two"}, 
 
     {"ABB":"98799","appMode":"Test", "feature": 2} 
 
    ].map(function (obj) { 
 
     var values = Object.keys(obj).map(function (key) { 
 
    \t  return obj[key] 
 
     }) 
 
     return values.join(' ') 
 
    }) 
 

 
var result = JSON.stringify(flatObjects) 
 
console.log(result)

bearbeiten: Code-Formatierung.

1

Diese Antwort verwendet auch Array.prototype.map aber kombiniert ES6 destructuring, arrow functions und template literals für eine besonders präzise Verfahren.

var input = [ 
 
    {"RID":"98798","appName":"TestApp"}, 
 
    {"RID":"98799","appName":"TestApp Two"} 
 
]; 
 

 
var output = input.map(({RID, appName})=> `${RID} ${appName}`); 
 

 
console.log(output); 
 

 
// [ 
 
// "98798 TestApp", 
 
// "98799 TestApp Two" 
 
// ]

Verwandte Themen