如何转换模型 Person 以匹配输入?
Person p = new Person(name, age, amountInBank);
(名称为字符串,年龄为整数,amountInBank 为 double )
我希望我的 JSON 输入如下:
{
"ID": "H123",
"list" : [
{
"name" : "ally",
"age": 18,
"amountInBank": 200.55
}
]
}
目前我调用 REST API 的代码是:
JSONObject jsonInput= new JSONObject();
jsonInput.put("ID", "H123");
//put in list input in JSON -> HELP NEEDED
Resource resource = client.resource(URL HERE);
resource.contentType(MediaType.APPLICATION_JSON);
resource.accept(MediaType.APPLICATION_JSON);
ClientResponse cliResponse = resource.post(jsonInput);
尝试了很多方法,但无法实现 JSON 格式列表的预期输入。请帮忙
方法一:
ArrayList<Map<String, Object>> list = new ArrayList<>();
list.add(p);
jsonInput.put("list" , list);
方法2:
JSONArray jsonArr = new JSONArray();
jsonArr.add(p);
jsonInput.put("list", jsonArr);
方法3:
Map<String, Object> map = new HashMap<String, Object>();
map.put("name", "ally");
map.put("age", 18);
map.put("amountInBank" : 255.55);
jsonInput.put("list", map);
最佳答案
最安全的选择是使用众所周知的库进行编码,例如 Jackson
。它能够通过以下方式将您的对象转换为 JSON 格式:
ObjectMapper mapper = new ObjectMapper(); //from Jackson library
Person p = new Person(name, age, amountInBank); //your POJO
String jsonString = mapper.writeValueAsString(p); //convert
来源:https://www.mkyong.com/java/how-to-convert-java-object-to-from-json-jackson/
还有其他选择,这只是个人喜好,因为 Jackson 被广泛使用并且有详细记录。
如果您尝试获取数组 JSON 对象的列表,则只需替换 Person
对象 List<Person>
并尝试整理它。
关于java - 用于调用 REST API 的 POST 请求的 JSON 输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58267787/