我想从angular 8前端向spring boot API发送一个JSON对象。我是这些框架的新手,我有点迷茫。
getFeed(data): Observable<boolean> {
var q = {coordinates:data};
console.log(q);
return this.http.get<Answer>(`${this.baseUrl}api/searchs?data=`+encodeURIComponent(JSON.stringify(q))).pipe(
map(res => true),
catchError(err => {
console.error(err);
return of(false);
})
);
}
public class QueryDTO {
// @JsonFormat(shape=JsonFormat.Shape.ARRAY)
@JsonDeserialize(as=ArrayList.class)
private ArrayList<String> coordinates=new ArrayList();
public QueryDTO (ArrayList<String> coo) {
this.coordinates=coo;
}
public QueryDTO() {}
public ArrayList<String> getCoordinates() {
return this.coordinates;
}
public void setCoordinate(ArrayList<String> coo) {
this.coordinates=coo;
}
}
@CrossOrigin(origins = "http://localhost:4200")
@Produces("application/json")
@RequestMapping(value = "/searchs")
public Collection<SearchFeedDTO> getFeed(@RequestParam(value = "data") String data) throws JsonMappingException, JsonProcessingException {
System.out.println(data);
System.out.println("I'm here");
final QueryDTO queryDTO = new ObjectMapper().readValue(data, QueryDTO.class);
System.out.println("you");
return null;
}
错误:
“无法将java.lang.String
的实例从START_OBJECT标记反序列化到[源:(String)”{“coordines”:[{“lat”:76.00542202728906,“lng”:-71.76493508359451},{“lat”:62.96921913888247,“lng”:-113.6539800675124},{“lat”:63.601007712290695,“lng”:-56.583665780107154}]};行:1,列:17](通过引用链to.querydto[“坐标”]->java.util.ArrayList[0])“
编辑:
@CrossOrigin(origins = "http://localhost:4200")
@Produces("application/json")
@RequestMapping(value = "/searchs")
public Collection<SearchFeedDTO> getFeed(@RequestParam(value = "data") QueryDTO data) throws JsonMappingException, JsonProcessingException {
System.out.println(data);
System.out.println("I'm here");
return null;
}
坐标类:
@Getter
@Setter
public class CoordinateDTO {
private int lat;
private int lng;
public CoordinateDTO() {}
}
public class QueryDTO {
// @JsonFormat(shape=JsonFormat.Shape.ARRAY)
@JsonDeserialize(as=ArrayList.class)
private ArrayList<CoordinateDTO> coordinates=new ArrayList<CoordinateDTO>();
public QueryDTO (ArrayList<CoordinateDTO> coo) {
this.coordinates=coo;
}
public QueryDTO() {}
public ArrayList<CoordinateDTO> getCoordinates() {
return this.coordinates;
}
public void setCoordinate(ArrayList<CoordinateDTO> coo) {
this.coordinates=coo;
}
}
新错误:未能将类型“java.lang.String”的值转换为所需类型“com.freemind.leaflet_test.models.dto.querydto”;嵌套异常是java.lang.IllegalStateException:无法将类型“java.lang.String”的值转换为所需类型“com.freemind.leflet_test.models.dto.querydto”:找不到匹配的编辑器或转换策略
你只需要做下一个
const it= JSON.stringify(Object);
现在在Spring,webservice应该累加一个字符串,
我收到下面的错误信息,请有人帮助或建议如何最好地调试这个。 我正在尝试从REst API调用反序列化Products对象。在我添加代码反序列化Price子类之前,代码一直运行良好。如下所示, 我的Price pojo如下所示, 我编写了一个Junit测试来尝试并模拟该错误,
当然,所有依赖项(子类追加在同一个字符串中)。 从外部API获取数据的代码是; 当我运行代码并试图获取adress“API/3”时,出现以下错误:
谢谢你的回答。 编辑:这解决了问题:
无法将Json反序列化为列表集合。我使用的是Lombok,它保存字段变量: 我该怎么修好它?
我从Fitbit API得到一个json字符串。我想在列表对象中保存dateTime和value字段。我用的是jackson模块Kotlin。我为此创建了ActivitiesSteps数据类。 下面是我使用Jackson的代码: 并引发以下异常:
例外情况: 套接字处理程序 我相信当JSON被解析为WorkstationRequest对象时会出现异常,原因是下面的项。这是套接字处理程序: 我不知道如何开始调试它。堆栈跟踪从未触及我的应用程序。我正在使用部署我的.jar,并使用执行它