我想使用 POST METHOD
将此json正文发送到服务器 {
"donatations": [
{
"campaignId": "string",
"name": "string",
"type": 0,
"donationValue": 0
}
],
"profileId": "string",
"creditCardId": "string",
"isPaidFees": true,
"isRequestDonatation": true
"amountFees": 0,
"totalDonationAmount": 0,
"institutionId": "string"
}
我在网上尝试了很多可用的解决方案,但是大多数解决方案都告诉格式化字符串并发送到服务器。有没有正确的方法将此主体发送到服务器?。
我通常这样做是为了将简单的字符串发送到服务器
JsonObject dados = new JsonObject();
dados.addProperty("profileId", sessionManager.getUsuario().getId());
dados.addProperty("name", scanResult.cardholderName.toString());
并将JsonObject作为我的POST主体发送
请帮帮我。感谢。
答案 0 :(得分:1)
您可以使用JsonObj / Array API创建一个:
JSONObject obj = new JSONObject();
JSONArray array = new JSONArray();
for(int i = 0; i < 10; i++){
JSONObject objFromArray = new JSONObject();
objFromArray.put("key", "value");
objFromArray.put("ke2y", "value");
array.add(objFromArray);
}
obj.put("child", array);
obj.put("normalObject", "another value");
你将有一个对象:
{"child": [ {/**obj*/}, /** 9 more objs*/ ], "normalObject":"anther value" }
答案 1 :(得分:0)
我通常使用Spring和Java POJO来发送/接收数据,如上所述。创建一个新的Spring Java应用程序。一旦有了基本的Spring应用程序,您现在可以使用POJO为您的数据结构建模。以下内容适用于您的数据结构:
public class Profile() {
private String profileId;
private String creditCardId;
private boolean isPaidFees;
private List<Donations> donations;
//etc. plus getters and setters
}
public class Donations(){
private String campaignId;
private String name;
private int type;
private float donationValue;
//etc. plus getters and setters
}
现在您已经在Java POJO中定义了数据结构,您可以使用spring为您创建一个REST接口。这可以在JSon中读取并将其转换为您的POJO,或者它可以获取您的POJO并将其作为JSon返回。
@RequestMapping(value = "/getProfile", method = RequestMethod.POST, consumes = "application/json", produces = "application/json")
public Profile getProfile(@RequestBody Profile profile) {
System.out.println(profile.profileId);
return profile;
}
答案 2 :(得分:0)
如果您只是创建要发布的对象,则无需创建pojo。这是一个非常简单的方法:
JSONObject mainObject = new JSONObject();
JSONArray array = new JSONArray();
JSONObject arrayItem = new JSONObject();
try {
//PUT VALUES TO THE ARRAYITEM.
//YOU WILL NEED TO LOOP HERE IF YOU HAVE MORE THAN 1 ITEM IN THE JSONARRAY
arrayItem.put("campaignId", "string");
arrayItem.put("name", "string");
arrayItem.put("type", 0);
arrayItem.put("donationValue", 0);
//PUT THE JSONOBJECT ITEM INSIDE THE JSONARRAY
array.put(arrayItem);
//PUT THE JSONARRAY INSIDE THE MAIN JSONOBJECT
mainObject.put("myArray", array);
//KEEP PUTTING THE REMAINING ITEMS INSIDE THE MAIN JSONOBJECT
mainObject.put("profileId", "string");
mainObject.put("creditCardId", "string");
mainObject.put("isPaidFees", true);
mainObject.put("isRequestDonatation", true);
mainObject.put("amountFees", 0);
mainObject.put("totalDonationAmount", 0);
mainObject.put("institutionId", "string");
} catch (JSONException e) {
e.printStackTrace();
}
现在您可以像以前那样以正常方式发送mainObject。