我需要记录多个微服务 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 很大并且不可能设置所有虚拟数据。