java - 用于调用 REST API 的 POST 请求的 JSON 输入

标签 java json api clientresource

如何转换模型 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/

相关文章:

java - 守护线程 - 用例

if 语句的 Python 问题

json - 使用Golang从AWS api解析数据

api - 谷歌路线优化

java - 如何正确应用 yt :accessControl in YouTube-API Java

java - 在 Javascript 中,valuesLength = (values.length, undefined); 的作用是什么? - 做?

java - 更改 DefaultMutableTreeNode 的文本样式

javascript - 通过 jQuery 使用 Spring REST API

sql - jsonb 在数组中查找一个值

java - 在 Java 中创建和检查 URL