我正在從客戶端向服務器發送一個發布請求。發布請求的主體如下所示:
...
body: JSON.stringify
({
command: 'someString',
dataFields: setDataList()
})
...
而“setDataList()”回傳以下結構:[ {…}, {…}, {…}, ..., {…} ]
[0: {type: "_header_", label: "upload"}
1: {type: "_image_", name: "data:image/jpeg;base64", value: "base64 encoded string", label: "someImage.JPG"}
2: {...}]
我在處理服務器上“dataFields”鍵的內容時遇到問題。目前,SpringBoot 應用程式如下所示:
@PostMapping(
consumes = {MediaType.APPLICATION_JSON_VALUE, MediaType.APPLICATION_XML_VALUE},
produces = {MediaType.APPLICATION_JSON_VALUE})
public void postBody(@RequestBody ManageRequest manageRequest) {
...
}
和“ManageRequest”是這樣的:
import java.util.List;
public class ManageRequest {
private String accountId;
private String command;
private String transactionId;
private List<String> dataFields;
public String getAccountId() {
return accountId;
}
public String getTransactionId() {
return transactionId;
}
public void setTransactionId(String transactionId) {
this.transactionId = transactionId;
}
public void setAccountId(String accountId) {
this.accountId = accountId;
}
public String getCommand() {
return command;
}
public void setCommand(String command) {
this.command = command;
}
public List<String> getDataFieldList() {
return dataFields;
}
public void setDataFieldList(List<String> dataList) {
this.dataFields = dataList;
}
}
我沒有使用 Java 處理此類請求的經驗。我的目標是像這樣提取“dataFields”的內容:“dataFields[0]、dataFields[1]、...”并將它們分配到一個新串列以添加到發布請求。目前,到達終點時串列似乎是空的。
uj5u.com熱心網友回復:
您的問題出在串列上。服務器正在等待一個字串串列,但您發送的是一個包含字串欄位的物件串列。
private List<String> dataFields; // This property is a List of string not a list of "dataFields"
您應該創建一個 DataField 類,它看起來像這樣
public class DataField{
private String type;
private String label;
private String name;
.
.
.
}
然后在您的 ManageRequest 類中,您應該這樣做:
public class ManageRequest {
private String accountId;
private String command;
private String transactionId;
private List<DataField> dataFields;
//Getter and setters
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/534492.html
標籤:爪哇弹簧靴
