我正在尝试将JSON字符串发送到post方法以便接收航班信息,我有以下json示例我必须修改以提出不同的请求
{
"request": {
"passengers": {
"adultCount": 1
},
"slice": [
{
"origin": "BOS",
"destination": "LAX",
"date": "YYYY-MM-DD"
},
{
"origin": "LAX",
"destination": "BOS",
"date": "YYYY-MM-DD"
}
]
}
}
我有以下课程
public class Request {
public class Passengers{
private int adultCount;
public int getAdultCount() {
return adultCount;
}
public void setAdultCount(int adultCount) {
this.adultCount = adultCount;
}
}
private List<Slice> slice;
public List<Slice> getSlice() {
return slice;
}
public void setSlice(List<Slice> slice) {
this.slice = slice;
}
public static class Slice{
private String origin;
private String destination;
private String date;
public String getOrigin() {
return origin;
}
public void setOrigin(String origin) {
this.origin = origin;
}
public String getDestination() {
return destination;
}
public void setDestination(String destination) {
this.destination = destination;
}
public String getDate() {
return date;
}
public void setDate(String date) {
this.date = date;
}
}
}
如何映射此类以设置值并使用相同的格式创建不同的json?我正在尝试杰克逊但我没有得到合适的输出
答案 0 :(得分:1)
JSON字符串映射到Java String
。 JSON编号映射到Java Number
类型。 JSON数组映射到Collection
类型或数组类型。 JSON对象映射到Java Map
类型或任何其他Java类型(之前未提及)。
所以像
这样的Java类class Foo {
String name;
int[] array;
Map<String, List<Double>> ref;
}
映射到
{
"name" : "string",
"array" : [1, 2, 3],
"ref" : {
"val1" : [1.2, 3.4]
}
}
您的JSON是根目录下的JSON对象。它包含
"request": {
这是一个键值对,其中键是JSON字符串,值是JSON对象。
这应该告诉您需要一个带有名为request
的字段的Java对象,该字段应该引用另一个对象。递归地执行此分析,您将获得Java对象格式。
答案 1 :(得分:0)
使用Gson可以大大简化您的生活,Gson的json库可以根据您的类图进行所有解析/编码。它还支持递归,它允许您定义更复杂的结构,如arraylist,list,hashtable。一切都以自己的方式运作。
private String field = "field_1";
priavate String field2 = "field_2";
ArraList<FIELDS> field_list = new ArrayList<FIELDS>();
会引用:
{
field : "field_1",
field2 : "field_2"
field_list : [
etc...
]
}