wie kann ich analysieren, jsonp, um javascript-Objekt?
Arbeite ich mit einer crossdomain-api gibt eine jsonp-string. Ich möchte analysieren, es in ein javascript-Objekt, so dass es einfacher, mit zu arbeiten.
Ich weiß, dass mit einem json-string ist, können Sie genau dies tun:
success: function (val) {
var result = JSON.parse(val);
}
Aber wenn ich das Tue, mit der jsonp habe ich von der api bekomme ich "Uncaught SyntaxError: Unexpected token o"
Mache ich es falsch oder ist das nicht der Weg, es zu tun mit jsonp?
--------EDIT 1---------------------------
Dies ist, was mein jsonp-string aussieht, wenn ich es öffnen:
Object {resource: "boxscore", parameters: Object, resultSets: Array[22]}
parameters: Object
resource: "boxscore"
resultSets: Array[22]
0: Object
1: Object
2: Object
3: Object
4: Object
headers: Array[28]
0: "GAME_ID"
1: "TEAM_ID"
2: "TEAM_ABBREVIATION"
3: "TEAM_CITY"
4: "PLAYER_ID"
5: "PLAYER_NAME"
6: "START_POSITION"
7: "COMMENT"
length: 28
__proto__: Array[0]
name: "PlayerStats"
rowSet: Array[26]
0: Array[28]
0: "0041300201"
1: 1610612764
2: "WAS"
3: "Washington"
4: 2772
5: "Trevor Ariza"
6: "F"
7: ""
8: "37:20"
9: 7
10: 10
11: 0.7
12: 6
1: Array[28]
2: Array[28]
3: Array[28]
4: Array[28]
5: Array[28]
6: Array[28]
So, was ich will zu tun ist, analysieren Sie die Daten mit header-Informationen in jedem array, wie mache ich das?
So zum Beispiel, wenn ich will GAME_ID ich nur schreiben, GAME_ID, und ich bekomme die gameid "0041300201" für jedes array.
- hast du die Konsole.melden Sie Ihre val-variable?
- ja ich habe es in der Konsole.log.
- und was hat es zu melden....
- Es ist ein massiv jsonp-string mit einer Menge von arrays whitin-arrays, so thats, warum ich zu analysieren, es mit Header
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie die jsonp-liberary für ihn .. es wird gut sein, wenn die crossdomain Website geben die json-sting :
Wenn Sie immer an den Erfolg-Rückruf und dies ist eine jsonp-Aufruf, Ihre
val
parameter ist bereits ein javascript-Objekt.dies erklärt, Ihre Fehler zu, wenn
result
ist ein Objekt, weilJSON.parse({})
wirft den gleichen Fehler.entspricht
Wenn Sie Zugriff auf eine remote-API unterstützt JSONP und jQuery zur Verfügung, ist es einfach zu überspringen die Zwischenhändler parsing-Schritt:
Dass spritzt ein script-element zeigt auf Ihre JSONP-Endpunkt und dem Endpunkt reagiert, indem er die JSON in einen Aufruf einer Funktion, die jQuery definiert automatisch für Sie.
callback
ist ein relativ standard-Namenskonvention für die JSONP-callback, aber doppelt überprüfen, was Ihre API erwartet.Wenn Sie nicht über jQuery zur Verfügung haben oder nicht nutzen wollen, definieren Sie eine Rückruffunktion und injizieren ein script-element selbst:
Das ist im Grunde das, was jQuery für Sie in der JSONP-Szenario.
kann dies Ihr problem lösen wird :
Eigentlich JSONP ist nicht JSON ist einfach JavaScript-code.Es gibt keinen Grund, von eval in diesem Fall... Sie konnte einfach tun, nach der Definition, die Funktion Global. jquery bietet auch Möglichkeiten der Herstellung einer gleichen-domain jsonp-request mit einer bestimmten jsonp callback, wenn Sie jQuery verwenden zu tun, die