2016-08-22 4 views
0

ich folgende erhalten Antwort von meinem Django Backend:Winkel 2 Entfernen ein zusätzliches Zeichen von JSON-Antwort

[{u'lat': 53.12258796536196, u'lng': 8.335471451282501}, {u'lat': 53.1225300194776, u'lng': 8.335511684417725}, {u'lat': 53.12250346092115, u'lng': 8.335405737161636}, {u'lat': 53.12256301644911, u'lng': 8.33535611629486}] 

Ich behandle es wie folgt:

response => {  

     this.exhibitionSurveyObjects = response; 
     console.log(this.exhibitionSurveyObjects[0].path) <== this line print 
     for(var i = 0; i < this.exhibitionSurveyObjects.length; i++){ 

      myVar.push(JSON.parse(this.exhibitionSurveyObjects[i].path)) 

     } 

     var polygon = new google.maps.Polygon({ 
      paths: myVar, 
      strokeColor: '#FF0000', 
      strokeOpacity: 0.8, 
      strokeWeight: 3, 
      fillColor: '#FF0000', 
      fillOpacity: 0.35, 
      map: this.map 
     }); 
     }, 

Hier bekomme ich einen Fehler auf meiner Konsole sagen Uncaught SyntaxError: Unexpected token u in JSON at position 2 dh Charakter 'u' ist im Grunde unerwartet?

Wie kann ich es loswerden? vielleicht, wie kann ich diesen "u" character oder einen anderen Weg entfernen?

+0

Der Fehler nicht, dass es ein ‚u 'Charakter, es ist, dass die Schlüssel in Ihrem Objekt nicht doppelt zitiert werden. Selbst wenn Sie das Zeichen 'u' entfernen, haben Sie kein gültiges JSON. Es sollte ungefähr wie folgt aussehen: [{"lat": 53.1221234 .... '. Was verwenden Sie, um die Antwort in JSON zu serialisieren? Bitte fügen Sie einige Ihrer Server-Seite Code, – Martin

Antwort

0

Allgemeine Zeichenfolge handling¶

Jedes Mal, wenn Sie Strings mit Django verwenden - zum Beispiel in Datenbankabfragen, Template-Rendering oder sonstwo - Sie haben zwei Möglichkeiten für diese Zeichenfolgen codiert. Sie können Unicode-Zeichenfolgen verwenden oder Sie können normale Zeichenfolgen (die manchmal als "Bytezeichenfolgen" bezeichnet werden) verwenden, die mit UTF-8 codiert sind.

In Python 3 ist die Logik umgekehrt, das heißt, normale Zeichenfolgen sind Unicode, und wenn Sie speziell eine Bytezeichenfolge erstellen möchten, müssen Sie der Zeichenfolge ein 'b' voranstellen. Wie in Django-Code ab Version 1.5 wird empfohlen, Unicode_Literale aus der Bibliothek future in Ihrem Code zu importieren. Wenn Sie speziell ein Bytezeichenfolge-Literal erstellen möchten, setzen Sie die Zeichenfolge mit "b" voran.

Python 2 Vermächtnis:

my_string = "Dies ist ein bytestring" my_unicode = u "Dies ist ein Unicode-String"

Quelle: https://docs.djangoproject.com/es/1.10/ref/unicode/