po mojej stronie serwera Mam obiekt Java, który zawiera HashMap. Chcę serializować go do JSON, zwrócić go do mojego klienta Angular2 i użyć go jako mapy/słownika.Mapa Java do JSON do mapy maszynowej
Oto klasa:
public class FileUploadResult {
String timestamp;
String message;
String status;
HashMap<String, String> parameters;
public FileUploadResult(String status, String message, String timestamp, HashMap parameters) {
this.status = status;
this.message = message;
this.timestamp = timestamp;
this.parameters = parameters;
}
}
Oto JSON że otrzymam po stronie klienta:
{"timestamp":"","message":"Test","status":"1","parameters":{"myKey":"Value","mySecondKey":"Another Value"}}
Oto mój otrzymania Angular2 http wezwanie:
this.http.post(this.uploadURL, formData).map((res:Response) => res.json() as FileUploadResult).catch(this.handleError);
FileUploadResult na kliencie wygląda następująco:
export class FileUploadResult {
status: string;
timestamp: string;
message: string;
parameters: Map<string, string>;
constructor() {
this.parameters = new Map<string, string>();
}
addParameter(key: string, value: string) {
this.parameters.set(key, value);
}
getParameters() {
return this.parameters;
}
}
Używając „jak FileUploadResult” w wywołaniu http.map, spodziewałem się dostać obiekt na którym mogę zadzwonić result.getParameters().get("myKey")
. Ale tak się nie dzieje. Dostaję nieokreślony obiekt, w którym jedynym połączeniem, które działa, jest result.parameters.myKey
. Czy istnieje sposób, aby osiągnąć to, co chcę i rzucić obiekt JSON na FileUploadResult, w tym mapę Angular2?
To samo, co http://stackoverflow.com/questions/29758765/json-to-typescript-class-instance? –
@RyanCavanaugh nie, niestety, nie. Nie znam kluczy z góry. – Androidicus