ich Informationen aus einer JSON-Datei abrufen möchten in angular2.For diesem Zweck ich dieses benutzerdefinierte Rohr erstellt, nach dem Beispiel How to display json object using *ngForAbrufen und Anzeigen von Json-Objekt * ngFor
import {Pipe, PipeTransform} from 'angular2/core';
@Pipe({name: 'parseData'})
export class ParseDataPipe implements PipeTransform{
constructor(){}
transform(value, args:string[]) : any {
let keys = [];
for (let key in value) {
keys.push({
key: key,
value: value[key]
});
}
return keys;
}
}
Dies ist die Vorlage i verwendet in der Komponente:
<button (click)="onTestGet()">GET REQUEST</button><br>
<p>{{getData}}</p>
<button (click)="onTestPost()">POST REQUEST</button><br>
<p>{{postData}}</p>
<span *ngFor="#entry of postData | parseData">
<ul>
<!--<li>Key: {{entry.key}}, value: {{entry.value.status}}</li>;-->
<li>Value: {{entry.value}}</li>
</ul>
</span>
</div>
das ist meine jSON-Datei:
{"status":"success","type":"cellSetData","data": {"epoch":6874,"cube":"EquityDer","axes":[{"id":-1,"hierarchies": [{"dimension":"Measures","hierarchy":"Measures"}],"positions": [[{"namePath":["pnl.SUM"],"captionPath":["pnl.SUM"],"properties": {"DISPLAY_INFO":0}}]]}],"cells":[{"ordinal":0,"value":-42973.21272120108,"formattedValue":"-42,973.21","properties":{}}],"defaultMembers":[{"dimension":"Measures","hierarchy":"Measures","path":["contributors.COUNT"],"captionPath":["Count"]},{"dimension":"Time","hierarchy":"HistoricalDates","path":["Mon Apr 11 02:00:00 CEST 2016"],"captionPath":["2016-04-11"]},{"dimension":"Epoch","hierarchy":"Epoch","path":["master"],"captionPath":["master"]}]}}
Ich möchte zum Beispiel "Status" und "Typ" abzurufen, aber ich abrufen eine Reihe von Zeichen wie folgt aus:
Wert: { Wert: " Wert: s Wert: t Wert: ein Wert: t Wert: u Wert: s Wert: " Wert:: Wert:" Wert: s Wert: u Wert: c Wert: c Wert: e Wert : S Wert: s Wert: " Wert:, Wert:" ...
ich das Objekt i wie das Abrufen analysieren:
postJSON(){
var param=JSON.stringify(
{"mdx":"SELECT FROM [EquityDerivativesCube] WHERE ([Measures].[pnl.SUM])"}
);
var firstheaders = new Headers();
firstheaders.append('Content-Type', 'application/json');
firstheaders.append('Authorization', 'Basic YWRtaW46YWRtaW4=');
return this._http
.post('http://localhost:9090/webservices/pivot/rest/v1/cube/query/mdx', param,{headers: firstheaders})
.map(res => res.json());
}
Weiß jemand, warum ich ein Array abrufen von Charakter und nicht ein Array von String wie ich wollte? Ich möchte angeben, dass ich diese Beispiele: access key and value of object using *ngFor Deep nested json to array in array/json rendering of Angular 2 *ngFor
Ich denke, dass es kein Problem json Parsen, sondern abrufen es ... mir geholfen
dank
danke Thierry, aber über Ihre vorherige Frage, die ich sah, haben Sie Daten korrekt von Ihrem Json abgerufen? es ist die gleiche Sache, die ich gerne tun würde – steky
Könnten Sie den Inhalt Ihrer Antwort bereitstellen? Speziell der Header "Content-Type". Vielen Dank! –
werfen Sie einen Blick auf den Inhaltstyp meiner Antwort hier und unten: firstheaders.append ('Content-Type', 'application/json'); firstheaders.append ('Autorisierung', 'Basic YWRtaW46YWRtaW4 ='); – steky