我试图将json对象列表从Javascript发送到Spring Boot后端。这是我的函数在前端的外观:
function submit() {
var toSend = JSON.stringify(toBeAdded);
console.log(toSend);
$.post("assets",
toSend,
data => {
populate(data);
toBeAdded = [];
});
}
所以我发送了一个类似:[{“name”:“foo1”,“description”:“bar1”,“value”:“4”},{“name”:“foo2”,“description”:“bar2”,“value”:“10”}]
但我在后端无法捕捉到它:
@RequestMapping(value = "/assets", method = RequestMethod.POST)
public void insertAssets(List<AssetDto> data, HttpSession session) {
System.out.println(data);
}
AssetDto看起来像:
@Data
@NoArgsConstructor
@AllArgsConstructor
public class AssetDto implements Serializable {
private String name;
private String description;
private int value;
}
因此,在本例中,我有一个错误(没有为接口java.util.List找到主构造函数或单个公共构造函数,也没有找到默认构造函数)。但我也尝试了使用字符串(我得到null),而使用JSONArray我得到了一个空列表。谁能帮帮我吗?
添加内容类型:application/json
标题以请求提及您发送的json数据。您应该使用<代码>$。ajax函数自$。post不允许添加标题。
function submit() {
var toSend = JSON.stringify(toBeAdded);
console.log(toSend);
$.ajax({
url: 'assets',
type: 'post',
data: toSent,
contentType: "application/json; charset=utf-8",
success: function (data){
populate(data);
toBeAdded = [];
}
});
}
在服务器端,在参数之前使用RequestBody注释。
@RequestMapping(value = "/assets", method = RequestMethod.POST)
public void insertAssets(@RequestBody List<AssetDto> data, HttpSession session) {
System.out.println(data);
}
我有一个实体,看起来像这样: 输入数据是一个
我有这样的收藏:<代码>地图 所以返回将是:
...但我得到: 我不知道如何应用这些信息。首先,我认为我需要为列表声明一些额外的映射(在同一个映射器类中),所以MapStruct知道如何像这样映射列表类型的每个字段: ...但我收到错误消息
假设我有一个函数,它接受两个参数并返回一个值,那么可以将映射转换为流中的列表作为非终端操作吗?我能找到的最近的方法是使用地图上的forEach创建实例并将其添加到预定义列表中,然后从该列表中启动一个新流。还是我错过了什么? 经典的“在一长串单词中找出3个最常出现的单词” (现在我想流式处理该地图的入口集)
我正在Play with Scala中开发一个REST服务器,在某些时候需要请求一个或多个其他Web服务的数据。根据这些服务的响应,服务器必须编写一个统一的结果供以后使用。 例子: 需要执行 上的事件 C。为了执行事件 C,还必须 上的事件 A 上的事件 B。 事件C有一个< code>Seq(www.anotherplace.com,www.athirdplace.com),我想从这个Seq开始
seleccion“对象它是一个实体,具有我从Ajax发送的JSON的一些属性,”seleccionados“是一个列表,保存接收到的数组,但当我发送它时,obj参数总是返回一个空对象,Ajax发送错误函数,我认为问题是我在向对象发送数组,但我不知道如何解决它 选择对象模型: