我正在尝试为我正在通过PUT主体的休息服务自动化PUT请求。我正在尝试使用HashMap为正文创建一个对象并为其添加值。 我不确定如何使用Hashmap为嵌套的JSON元素添加值。
我的身体是这样的: {
import { Injectable } from '@angular/core';
import { HttpClient, HttpHeaders } from '@angular/common/http';
import { RequestOptions } from '@angular/http';
import { Observable } from 'rxjs/Observable';
@Injectable()
export class RequestService {
private requestOptions = {
headers: new HttpHeaders({'Locale': 'en_US'})
};
constructor(private http: HttpClient) { }
callEndpoint(state: string, countryCode: string): Observable<Object> {
return this.http.get(`https://endpointurl.com`,this.requestOptions);
}
}
我的代码如下:
"versions": [
{
"versionname": "Test",
"number": 1
}
],
"id": 19,
"name": "TEST",
}
我的问题是如何为&quot; versionname&#39;添加值?和&#39;数字&#39;元素进入地图,以便我可以在我的PUT请求的身体中传递它?任何帮助非常感谢。
答案 0 :(得分:0)
使用严格打字,如果你知道你的有效载荷,请不要使用地图(从头顶输入,可能不会立即编译):
public class Request {
public static class Version {
public String versionname;
public int number;
protected Version() {} // for deserializer
public Version(String versionname, int number) {
this.versionname = versionname;
this.number = number;
}
}
public List<Version> versions = new ArrayList<>();
public int id;
public String name;
}
Request request = new Request();
request.versions.add(new Version("Test", 1));
request.id = 19;
request.name = "TEST";
String jsonString = new ObjectMapper().writeValueAsString(request);
Request deserialized = new ObjectMapper().readValue(jsonString, Request.class);