J-String is a library written in Java that makes it easy for you to generate a JSON string from java class type for the test.
To generate JSON string , Call JsonGenerator.generate() method with a Java Class Type want to generate.
public interface JsonGenerator {
<T> String generate(Class<T> type);
}When given a type, J-String generates the tree consist of JsonFieldDefinition.
suppose that there are the below types
class Member{
private String name;
private int age;
private Address address;
private boolean gender;
private List<Belonging> belongings;
}class Address{
private String state;
private String city;
private String street;
}class Belonging{
private String name;
private int count;
}The JSON string is generated by based above tress
{
"name": "String",
"age": 1,
"address": {
"state": "String",
"city": "String",
"street": "String"
},
"gender": true,
"belongings": [
{
"name": "String",
"count": 1
}
]
}J-String can generate JSON from classes composed of the following types:
- Number
byte,Byteshort,Shortint,Integerlong,Longfloat,Floatdouble,Double
StringBooleanObject- The
ClassLoaderof object type is must be theAppClassLoader.
- The
- Array
List<T>Set<T>
Enum- Date and Time
LocalDateLocalTimeLocalDateTimeZonedDateTimeInstant
class IntegrationTest{
private String name;
private Integer age;
private boolean gender;
private ObjectType object;
private List<List<ObjectType>> array;
}class ObjectType{
private String value;
}List<ValueGenerator> generators = new ArrayList<>();
generators.add(new StringGenerator());
generators.add(new NumberGenerator());
generators.add(new BooleanGenerator());
JsonGenerator generator = new StandardJsonGenerator(generators);
String json = generator.generateFieldsOfType(IntegrationTest.class);{
"name":"String",
"age":1,
"gender":true,
"object":{
"value":"String"
},
"array":[
[
{
"value":"String"
}
]
]
}- generate a custom value
