2016-06-28 6 views
-4

Ich habe einige JSON mit zwei Parametern ausgedrückt alsJSON Konvertierung in Nutzbare Objekt in Javascript

{"pushid":"35336165333161382d646338302d346665302d626236312d303763313435663036656131","count":1} 

Ich versuchte, den Zugang zum „pushid“ zu bekommen und der „count“ als nutzbare Elemente, entweder in einem Objekt, ein Array oder eine Karte, und bin ein wenig verwirrt, wie das geht.

Wenn ich JSON.parse (JSON) aufrufen, gibt es nicht definiert, und so nehme ich an, dass es bereits ein Objekt ist. Aber wenn ich versuche, json zu verwenden [1] es gibt den zweiten Charakter der ganzen Sache (was in diesem Fall „). Wie kann ich ein Objekt

var obj = {pushId: SOME_STRING, count: SOME_INT)? 

Vielen Dank im Voraus,

+2

Zeigen Sie Ihren vollständigen Code zu analysieren . 'JSON.parse ({a:" a "})' gibt dir '{a:" a "}' und nicht 'undefined'. –

+0

Es sollte Objekt in einer Instanz sein, als ob Sie 'var data = yourJsonString;' und wenn Sie 'console.log (data) => object' oder' console.log (data.count) => 1' und Sie setzen kann json [1] nicht für ein Objekt verwenden, da 1 kein Schlüssel ist, wenn die Daten eine vollständige Zeichenkette '{"key": "value"} sind, wird json [1] "zurückgeben", da es das 2. Zeichen –

+1

I ist kann das beschriebene Problem nicht reproduzieren: http://jsbin.com/cixesog/1/edit?js,console – Quentin

Antwort

2

In Anbetracht:

var jsonString = '{"pushid":"35336165333161382d646338302d346665302d626236312d303763313435663036656131","count":1}'; 

Sie tun können:.

var jsonObj = JSON.parse(jsonString); 
console.log(jsonObj.pushid); // 3533... 
console.log(jsonObj['pushid']); // 3533... 
console.log(jsonObj.count); // 1 
console.log(jsonObj['count']); // 1 
console.log(jsonObj[0]); // undefined 
console.log(jsonObj[1]); // undefined 
+0

Sie meinen, wie das OP schon gesagt hat, dass sie in der Frage? – Quentin

+1

@Quentin Sie sind hier die ganze Zeit. Was tun Sie für das Leben: P –

+0

@Quentin Überprüfen Sie die aktualisierte Antwort. Es funktioniert für mich auf Chrome. –

1

Dies ist bereits ein Objekt, so dass Sie es nicht analysieren müssen {“ pushid ":" 35336165333161382d6466338302d346665302d626236312d303763313435663036656131 "," count ": 1}

Alles, was Sie tun müssen, ist es jetzt zuweisen, was immer Variable Sie wollen.

let data = {"pushid":"35336165333161382d646338302d346665302d626236312d303763313435663036656131","count":1}; 

console.log("pushid : " + data["pushid"]); 
pushid : 35336165333161382d646338302d346665302d626236312d303763313435663036656131 

console.log("count : " + data["count"]); 
count : 1 
0

ich meine, ist diese Zahl zu lang für JS darzustellen darin 64 Bit ist Gleitkomma-interne Darstellung, aber man kann versuchen, die Base16 repr mit

parseInt(obj.pushid, 16);

+0

ist Alpha numerisch – inoabrian

+0

Die Frage besteht darin, den JSON zu analysieren und nicht den String-Wert einer der Eigenschaften des Objekts in eine Zahl zu konvertieren – Quentin