说我有以下对象:
public class ComplexJacksonObject extends BaseJsonObject {
public int Start;
public int Count;
public Person MyPerson;
public class Person extends BaseJsonObject {
public String Firstname;
public String Lastname;
public Address Where;
}
public class Address extends BaseJsonObject {
public String Street;
public int Number;
}
}
显然,当我向杰克逊请求JSON时,会得到类似以下内容的信息:
public String toJson(ComplexJacksonObject obj) {
try {
return generateMapper().writeValueAsString(obj);
} catch (JsonProcessingException e) {
e.printStackTrace();
return null;
}
}
// returned: {"MyPerson":{"Firstname":"First","Lastname":"Last","Where":{"Street":"Street","Number":15}},"Count":1,"Start":2}
但是,对于QueryString,我需要将顶级属性对转换为Key = Value&格式,例如:
MyPerson={"Firstname":"First","Lastname":"Last","Where":{"Street":"Street","Number":15}}&Count=1&Start=2
另外当然还有MyPerson = [This_Part_Needs_To_Be_Url_Encoded].
杰克逊中有任何通用方法可以自动为我执行此操作吗?还是我会被迫提出自己的想法?一些字符串替换正则表达式?有任何想法吗?