如何在不创建对象的情况下将java类转换为json格式结构

2023-12-27

我需要记录多个微服务 api 调用,所以我有一个问题,如何直接从 java pojo 类创建 json 字符串。我的意思是说,例如,

MyPojo.java

public class MyPojo {
String name;
List<String> address;
public MyPojo() {
    // TODO Auto-generated constructor stub
}
//setters and getters

}

现在我需要 pojo 的字符串 json 结构而不创建类的对象。可能与 swagger api 在 Web UI 中创建 @RequestBody 对象的 json 结构的方式相同。

就像是:

String jsonStruct=SomeUtil.convertPojoToJson(MyPojo.class)

那么它应该给出如下:

{"name":"string","address":[]}

My Try:

import java.util.List;
import java.util.Map;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;

import io.swagger.v3.core.converter.ModelConverters;
import io.swagger.v3.core.util.Json;
import io.swagger.v3.oas.models.media.Schema;

public class TEst {
public static void main(String[] args) throws JsonProcessingException {

    ObjectMapper obj = new ObjectMapper(); 

    MyPojo o=new MyPojo();
    o.setName("aa");
    List<String> l=Arrays.asList("a","s");
    o.setAddress(l);
    System.out.println(obj.writeValueAsString(o));

}
}

实际操作数:

 {"name":"aa","address":["a","s"]}

所需的操作数:

 {"name":"string","address":["string"]}

关注:但我需要在不创建对象的情况下进行创建,因为实际上 pojo 很大并且不可能设置所有虚拟数据。


你可以使用Podam https://mtedone.github.io/podam/

PODAM 是一个轻量级工具,用于用数据自动填充 Java POJO。这 开发单元测试时很方便。感谢 PODAM 用户现在拥有 一句台词就能完成所有的工作。

在您的项目中添加 PODAM 依赖项

<dependency>
  <groupId>uk.co.jemos.podam</groupId>
  <artifactId>podam</artifactId>
  <version>[latest.version]</version>
  <!-- <scope>test</scope> -->
</dependency>
  • 定义你的DataProviderStrategy如果您不想要默认值(随机数据)
  • Define PodamFactorybean,初始化为数据提供商策略
  • Use the PodamFactory你的代码中的bean
 PodamFactory factory = new PodamFactoryImpl();
 MyPojo myPojo = factory.manufacturePojo(MyPojo .class);
 // write it as json
 System.out.println(new ObjectMapper().writeValueAsString(myPojo));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在不创建对象的情况下将java类转换为json格式结构 的相关文章

随机推荐