java之在放心的请求正文中将对象序列化为 json

mengfanrong 阅读:44 2024-06-03 14:00:57 评论:0

我正在使用 resteasy 制作一个 rest api ,并使用 rest-assured 对其进行测试.

假设我有一个类 message,它有一个属性 text

@XmlRootElement 
public class message { 
  @XmlElement 
  public String text; 
} 

以下测试将尝试将此对象发布到给定的 url:

message msg = new message(); 
msg.text = "some message"; 
 
expect() 
  .statusCode(200) 
.given() 
   .contentType("application/json") 
   .body(msg) 
.when() 
  .post("/message"); 

msg 对象被序列化为 json 并发布,但不是以我想要的方式 - 也就是说,不是以 resteasy 需要的方式。

发布的内容:

{ "text": "some message" } 

什么工作:

{ "message": { "text": "some message" } } 

有没有人知道如何让这项工作按预期进行?

请您参考如下方法:

我知道这已经有了答案,但我想分享我能够发送 json 对象的方式。有人可能会觉得它有帮助

// import org.json.simple.JSONObject; 
JSONObject person = new JSONObject(); 
person.put("firstname", "Jonathan"); 
person.put("lastname", "Morales"); 
 
JSONObject address = new JSONObject(); 
address.put("City", "Bogotá"); 
address.put("Street", "Some street"); 
person.put("address", address); 
 
String jsonString = person.toJSONString(); 
// {"address":{"Street":"Some street","City":"Bogotá"},"lastname":"Morales","firstname":"Jonathan"} 
 
// import static com.jayway.restassured.RestAssured.*; 
given().contentType("application/json") 
       .body(jsonString) 
       .expect().statusCode(200) 
       .when().post("http://your-rest-service/"); 


标签:java
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

关注我们

一个IT知识分享的公众号