2017-01-29 7 views
0

Die json Ausgang ist soetwas wie: {"apple":3,"another":1,"more":5,"volvo":1,"audi":1,"ford":1}get Werte von Json variablen Daten mit Jquery oder Javascript

Ich brauche eine Append mit jedem der empfangenen Werte zu tun. Die Zahlen neben ihnen sind, wie oft sie existieren.

Ich weiß, es wird wahrscheinlich etwas mit "für jeden" Wert sein, aber da die Werte und Schlüssel der JSON-Antwort variabel sind, ist es schwierig für mich, herauszufinden, wie ich es machen soll.

Ich möchte, dass die Append-Reihenfolge davon abhängt, wie groß die Nummer ist. Wenn es größer druckt es auf der Oberseite, und so weiter ...

zum Beispiel:

<div id="values"> 
    <p>The value "more" is repeated 5 time(s).</p> 
    <p>The value "apple" is repeated 3 time(s).</p> 
    <p>The value "another" is repeated 1 time(s).</p> 
    ... 
</div> 

Erinnern Sie sich! Die Antwort kann sich ändern, die Antwort wird nicht immer Apfel, ein anderer, mehr, Volvo, Audi und Ford ... Es kann ÄNDERUNG!

EDIT: Ich kann etwas damit tun, aber, wie bestelle ich sie mit höheren oder niedrigeren Werten?

for (var key in interests) { 
    if (interests.hasOwnProperty(key)) { 
    console.log(key + " -> " + interests[key]); 
    } 
} 

EDIT:

var data = {"apple":3,"another":1,"more":5,"volvo":1,"audi":1,"ford":1}; // initial data 
var interestsValue = []; // data with values 

for (var key in data){ interestsValue.push({ name: key, value: data[key] }); } // send data with values 
interestsValue.sort(function(a, b){ return b.value - a.value; }); // sort values 

console.log(interestsValue); // values ordered from bigger to smaller 
+0

ist es Hausaufgaben? Hast du etwas probiert? –

+0

Haben Sie ein wenig gesucht? Sie müssen nur ein Objekt durchlaufen: http://stackoverflow.com/questions/684672/how-do-i-loop-through-en-enumerate-a-javascript-object –

Antwort

0

Wie oben erwähnt zuerst Objekt in das Array konvertieren.

var data = {"apple":3,"another":1,"more":5,"volvo":1,"audi":1,"ford":1}; 
function sortByValue (data){ 
var dataArray=[]; 
for(var key in data){ 
dataArray.push({name:key ,value :data[key]}); 
} 
dataArray.sort(function(a,b){return b.value- a.value}); //sort it in descreasing order 
return dataArray; 
} 
var text=""; 
var objArray = sortByValue(data); 
$.each(objArray,function(index,object){ 
text +=" <p>The value " +object.name+ " is repeated "+ object.value + " time(s).</p>"; 
}); 
$("#values").append(text) 
+0

funktioniert nicht: https://jsfiddle.net/t8L160vs/ –

+0

@ QuiqueOsunaGarcía ersetzen var ObjArray mit var objArray und es wird funktionieren – user3755154

1

Erste - konvertiert das Objekt ein gültiges Array:

var data = {"apple":3,"another":1,"more":5,"volvo":1,"audi":1,"ford":1}; 
var arr = []; 

for (var key in data) 
{ 
    arr.push({ name: key, value: data[key] }); 
} 

Dann .... verwenden das Array mit jQuery, eckig, etc ... um Ihre Elemente zu bevölkern

Genießen Sie :)

1

Gefällt Ihnen das.Loop durch Ihre Objcet mit jquery $.each Methode Dann fügen Sie die HTML in Ihre Div mit append Methode.

var obj= {"apple":3,"another":1,"more":5,"volvo":1,"audi":1,"ford":1}; 
 

 
text = ""; 
 
$.each(obj,function(index,element){ 
 
text +=" <p>The value " +index+ " is repeated "+ element + " time(s).</p>"; 
 
}); 
 
$("#values").append(text);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div id="values"> 
 
</div>

JS Geige https://jsfiddle.net/uobedcf0/

Siehe AKTUALISIERT Fiddle:

https://jsfiddle.net/u1kn6d6L/1/

+0

scheint gut, aber, wie bestelle ich sie durch die Zahlen? –

+0

nehmen Sie zuerst alle Zahlen von Ihrem Objekt in array.The sort.Try –

+0

hey, ich habe versucht, ich kann sie jetzt bestellen, aber ich kann nicht anhängen ... Hier ist die jsfiddle, wahrscheinlich ist etwas offensichtlich, dass ich nicht siehe ... https://jsfiddle.net/u1kn6d6L/ –

Verwandte Themen