JavaScript-Objekt mit numerischen Schlüsseln in Array konvertieren

Ich habe ein solches Objekt als JSON-Antwort vom Server zurück:

{"0":"1","1":"2","2":"3","3":"4"} 

Ich möchte es in ein JavaScript-Array wie folgt konvertieren:

 ["1","2","3","4"] 

Gibt es einen besten Weg, dies zu tun? Wo immer ich lese, benutzen Leute komplexe Logik mit Schleifen. Gibt es alternative Methoden, dies zu tun?

   

Es ist eigentlich sehr direkt mit jQuery $.map

 var arr = $.map(obj, function(el) { return el }); 

GEIGE

und fast genauso einfach, ohne jQuery, die Schlüssel in ein Array umwandeln und dann die Werte mit Array.map

 var arr = Object.keys(obj).map(function(k) { return obj[k] }); 

GEIGE

Es wird vorausgesetzt, dass es bereits als JavaScript-Objekt analysiert wurde und nicht wirklich JSON ist, was ein String-Format ist, in diesem Fall wäre auch ein Durchlauf durch JSON.parse notwendig.

In ES2015 gibt es Object.values zur Rettung, was dies zu einem Kinderspiel macht

 var arr = Object.values(obj); 
 var json = '{"0":"1","1":"2","2":"3","3":"4"}'; var parsed = JSON.parse(json); var arr = []; for(var x in parsed){ arr.push(parsed[x]); } 

Hoffe, das ist was du willst!

Du machst es einfach so

 var data = { "0": "1", "1": "2", "2": "3", "3": "4" }; var arr = []; for (var prop in data) { arr.push(data[prop]); } console.log(arr); 

DEMO

Es gibt nichts wie ein “JSON-Objekt” – JSON ist eine Serialisierungsnotation.

Wenn Sie Ihr JavaScript-Objekt in ein Javascript-Array umwandeln möchten, schreiben Sie entweder Ihre eigene Schleife [die nicht so komplex ist!], Oder Sie verwenden die Methode underscore.js _.toArray() :

 var obj = {"0":"1","1":"2","2":"3","3":"4"}; var yourArray = _(obj).toArray(); 

Nichts Hartes hier. Überstreichen Sie Ihre Objektelemente und ordnen Sie sie dem Array zu

 var obj = {"0":"1","1":"2","2":"3","3":"4"}; var arr = []; for (elem in obj) { arr.push(obj[elem]); } 

http://jsfiddle.net/Qq2aM/

 var JsonObj= {"0":"1","1":"2","2":"3","3":"4"}; var array = []; for(var i in JsonObj) { if(JsonObj.hasOwnProperty(i) && !isNaN(+i)) { array[+i] = JsonObj[i]; } } 

DEMO

Versuche dies:

 var newArr = []; $.each(JSONObject.results.bindings, function(i, obj) { newArr.push([obj.value]); }); 

Nehmen wir an, Sie verwenden folgendes:

 var j = {0: "1", 1: "2", 2: "3", 3: "4"}; 

Sie könnten die Werte erhalten mit:

 Object.keys(j).map(function(_) { return j[_]; }) 

Ausgabe:

 ["1", "2", "3", "4"] 

Ich bin mir nicht sicher, was ich hier vermisse, aber einfach den folgenden Code auszuprobieren macht die Arbeit. Fehle ich hier etwas?

https://jsfiddle.net/vatsalpantew3w5bhq/

 $(document).ready(function(){ var json = { "code" :"1", "data" : { "0" : {"id":"1","score":"44"}, "1" : {"id":"1","score":"44"} } }; createUpdatedJson(); function createUpdatedJson(){ var updatedJson = json; updatedJson.data = [updatedJson.data]; $('#jsondata').html(JSON.stringify(updatedJson)); console.log(JSON.stringify(updatedJson)); } }) 

Angenommen, Sie haben einen Wert wie den folgenden

 var obj = {"0":"1","1":"2","2":"3","3":"4"}; 

Dann können Sie dies in ein Javascript-Array mit den folgenden verwenden

 var arr = []; json = JSON.stringify(eval('(' + obj + ')')); //convert to json string arr = $.parseJSON(json); //convert to javascript array 

Dies funktioniert auch, um JSON in multidimensionale Javascript-Arrays zu konvertieren.

Keine der anderen Methoden auf dieser Seite schien für mich vollständig zu funktionieren, wenn ich mit php json-kodierten Strings arbeitete, außer der Methode, die ich hier erwähne.

Hier ist ein Beispiel, wie Sie ein Array von Objekten erhalten und dann das Array sortieren können.

  function osort(obj) { // map the object to an array [key, obj[key]] return Object.keys(obj).map(function(key) { return [key, obj[key]] }).sort( function (keya, keyb) { // sort(from largest to smallest) return keyb[1] - keya[1]; } ); } 

Dies ist die beste Lösung. Ich denke schon.

 Object.keys(obj).map(function(k){return {key: k, value: obj[k]}}) 
 var obj = {"0":"1","1":"2","2":"3","3":"4"}; var vals = Object.values(obj); console.log(vals); //["1", "2", "3", "4"] 

Eine andere Alternative zu der Frage

 var vals = Object.values(JSON.parse(obj)); //where json needs to be parsed 

Sie können Json-Objekt in Array & String mit PHP konvertieren.

 $data='{"resultList":[{"id":"1839","displayName":"Analytics","subLine":""},{"id":"1015","displayName":"Automation","subLine":""},{"id":"1084","displayName":"Aviation","subLine":""},{"id":"554","displayName":"Apparel","subLine":""},{"id":"875","displayName":"Aerospace","subLine":""},{"id":"1990","displayName":"Account Reconciliation","subLine":""},{"id":"3657","displayName":"Android","subLine":""},{"id":"1262","displayName":"Apache","subLine":""},{"id":"1440","displayName":"Acting","subLine":""},{"id":"710","displayName":"Aircraft","subLine":""},{"id":"12187","displayName":"AAC","subLine":""}, {"id":"20365","displayName":"AAT","subLine":""}, {"id":"7849","displayName":"AAP","subLine":""}, {"id":"20511","displayName":"AACR2","subLine":""}, {"id":"28585","displayName":"AASHTO","subLine":""}, {"id":"45191","displayName":"AAMS","subLine":""}]}'; $b=json_decode($data); $i=0; while($b->{'resultList'}[$i]) { print_r($b->{'resultList'}[$i]->{'displayName'}); echo "
"; $i++; }
  var data = []; data = {{ jdata|safe }}; //parse through js var i = 0 ; for (i=0;i 
 var obj= {"0":"1", "1":"2", "2":"3", "3":"4"}; var arr = []; var keys = window.jQuery.map(obj, function(value, key) { arr.splice(key, 0, value); console.log(arr); });