2016-05-04 25 views
0

I info mit meiner Server-Datei von Amazon API bin Abrufen (node.js)Entfernen doppelte Anführungszeichen und Eckige Klammern JSON

client.itemLookup({ 
    idType: 'ISBN', 
    itemId: 'B00S51XHUQ, B00P3IX4V6', 
    responseGroup: 'Offers,ItemAttributes' 
}).then(function(results){ 
    res.send(JSON.stringify(results)); 
    console.log(results); 
}) 

Dann benutze ich <td ng-repeat="att in amazon.ItemAttributes" >{{att.Title}}</td> einige Daten aus dem app.get anzuzeigen, aber es zeigt dies wie

[ "Corsair Vengeance LPX 16 GB (2x8GB) DDR4 DRAM 2400MHz (PC4-19200) C14 Memory Kit - Schwarz"]

mit "" und [] um die Daten, habe ich versucht, mit .replace aber kein Glück

Pastebin: http://pastebin.com/Ee8Aryw3

Irgendwelche Ideen, danke

+0

Was mag es amazon.ItemAttributes aussehen? Kannst du es loggen und die Struktur der Daten zur Frage hinzufügen – jmancherje

+0

Entschuldigung, es ist eine große JSON-Datei, hinzugefügt einen Papierkorb – Noobcoder

+0

Warum zeichnest du den JSON? Das könnte der Grund sein, warum du denkst, dass du dich mit diesen Charakteren befassen musst. Wenn Sie JSON erhalten, sollte nur der Text angezeigt werden, nicht die Klammern und Anführungszeichen. –

Antwort

0

Verwenden Sie ein $filter mit .slice().

var app = angular.module("app", []); 
 

 
app.controller("MainCtrl", ["$scope", function($scope){ 
 
\t $scope.item = "[\"Corsair Vengeance LPX 16GB (2x8GB) DDR4 DRAM 2400MHz (PC4-19200) C14 Memory Kit - Black\"]"; 
 
    
 
    //$scope.hello = "hello world"; 
 
}]); 
 

 
app.filter("cleanItem", function() { 
 
\t return function(input) { 
 
    \t if(!input) return ""; 
 
    
 
    return input.slice(2, -2); 
 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 
<div ng-app="app" ng-controller="MainCtrl"> 
 
{{item | cleanItem}} 
 
</div>

+0

Sorry, ich hätte die JSON enthalten. Es ist ein bisschen größer als das. – Noobcoder

+0

Das gleiche Prinzip gilt: Sie würden immer noch einen benutzerdefinierten Filter verwenden: '

{{ item.name | cleanItem }}
' – Kyle

+0

Ich würde sagen 50 Elemente aus der Abfrage ziehen? Ich müsste das für jeden tun? – Noobcoder

0

dies ist der Filter für einige Zeichen entfernen:

app.filter('clearText', function() { 
     return function(text) { 
      return text ? String(text).replace(/"<[^>]+>/gm, '') : ''; 
     } 
     }); 

in Ihrem html:

{{item | clearText}} 
Verwandte Themen