Java 如何从这个示例JSON创建POJO?
我正在尝试从API中为以下JSON创建POJO 当我将其复制并粘贴到中时,我在第5行Java 如何从这个示例JSON创建POJO?,java,json,pojo,jsonschema2pojo,Java,Json,Pojo,Jsonschema2pojo,我正在尝试从API中为以下JSON创建POJO 当我将其复制并粘贴到中时,我在第5行“requestId”:string中得到一个错误,它说“有一个问题:无法识别的标记'string':应为('true'、'false'或'null')(第5行,第24列) 如果我将string更改为实际的示例字符串,它就可以正常工作。这个json-to-pojo转换器不能处理这种格式的json吗?将所有数据类型改为样本似乎有点乏味 { "kind": "qpxExpress#tripsSearch",
“requestId”:string中得到一个错误,它说“有一个问题:无法识别的标记'string':应为('true'、'false'或'null')(第5行,第24列)
如果我将string
更改为实际的示例字符串,它就可以正常工作。这个json-to-pojo转换器不能处理这种格式的json吗?将所有数据类型改为样本似乎有点乏味
{
"kind": "qpxExpress#tripsSearch",
"trips": {
"kind": "qpxexpress#tripOptions",
"requestId": string,
"data": {
"kind": "qpxexpress#data",
"airport": [
{
"kind": "qpxexpress#airportData",
"code": string,
"city": string,
"name": string
}
],
"city": [
{
"kind": "qpxexpress#cityData",
"code": string,
"country": string,
"name": string
}
],
"aircraft": [
{
"kind": "qpxexpress#aircraftData",
"code": string,
"name": string
}
],
"tax": [
{
"kind": "qpxexpress#taxData",
"id": string,
"name": string
}
],
"carrier": [
{
"kind": "qpxexpress#carrierData",
"code": string,
"name": string
}
]
},
"tripOption": [
{
"kind": "qpxexpress#tripOption",
"saleTotal": string,
"id": string,
"slice": [
{
"kind": "qpxexpress#sliceInfo",
"duration": integer,
"segment": [
{
"kind": "qpxexpress#segmentInfo",
"duration": integer,
"flight": {
"carrier": string,
"number": string
},
"id": string,
"cabin": string,
"bookingCode": string,
"bookingCodeCount": integer,
"marriedSegmentGroup": string,
"subjectToGovernmentApproval": boolean,
"leg": [
{
"kind": "qpxexpress#legInfo",
"id": string,
"aircraft": string,
"arrivalTime": string,
"departureTime": string,
"origin": string,
"destination": string,
"originTerminal": string,
"destinationTerminal": string,
"duration": integer,
"operatingDisclosure": string,
"onTimePerformance": integer,
"mileage": integer,
"meal": string,
"secure": boolean,
"connectionDuration": integer,
"changePlane": boolean
}
],
"connectionDuration": integer
}
]
}
],
"pricing": [
{
"kind": "qpxexpress#pricingInfo",
"fare": [
{
"kind": "qpxexpress#fareInfo",
"id": string,
"carrier": string,
"origin": string,
"destination": string,
"basisCode": string,
"private": boolean
}
],
"segmentPricing": [
{
"kind": "qpxexpress#segmentPricing",
"fareId": string,
"segmentId": string,
"freeBaggageOption": [
{
"kind": "qpxexpress#freeBaggageAllowance",
"bagDescriptor": [
{
"kind": "qpxexpress#bagDescriptor",
"commercialName": string,
"count": integer,
"description": [
string
],
"subcode": string
}
],
"kilos": integer,
"kilosPerPiece": integer,
"pieces": integer,
"pounds": integer
}
]
}
],
"baseFareTotal": string,
"saleFareTotal": string,
"saleTaxTotal": string,
"saleTotal": string,
"passengers": {
"kind": "qpxexpress#passengerCounts",
"adultCount": integer,
"childCount": integer,
"infantInLapCount": integer,
"infantInSeatCount": integer,
"seniorCount": integer
},
"tax": [
{
"kind": "qpxexpress#taxInfo",
"id": string,
"chargeType": string,
"code": string,
"country": string,
"salePrice": string
}
],
"fareCalculation": string,
"latestTicketingTime": string,
"ptc": string,
"refundable": boolean
}
]
}
]
}
}
页面上的示例JSON代码使用引号中的数据类型,因此“string”
而不是string
。你可以这样做:
(警告!如果您需要字符串以外的其他类型,则以下示例毫无意义!)
有效的json要求字符串值包含在引号中。因此,引用键而不是像->“id”:string这样的值没有多大意义。仔细阅读“在请求正文中,使用以下结构提供数据”“您没有提供任何数据Ok,但现在您将“布尔”和“整数”之类的内容放在引号中。这不会使POJO中的这些数据类型成为字符串吗?另外,我看到的JSON没有引号中的数据类型,您是否手动添加了这些数据类型?我只看到“requestId”:字符串,
是的,这是正确的。该工具需要有效的JSON或JSON模式。有效的JSON需要字符串值用引号括起来。您可以通过将的“里程数”:integer
替换为的“里程数”:{“type”:“integer”}
来创建您的模式,明白了,谢谢。遗憾的是,它没有以有效的模式格式提供。好的,没错。因此,为了创建POJO,我需要在每个字段中放置一些示例数据,并通过jsonscheme2pojo运行它,然后?Json to Java将生成Java类。但要生成POJO,您需要提供适合Bill的json数据,并使用GSON或其他库来实例化模式生成器生成的类
{
"kind": "qpxExpress#tripsSearch",
"trips": {
"kind": "qpxexpress#tripOptions",
"requestId": "string",
"data": {
"kind": "qpxexpress#data",
"airport": [
{
"kind": "qpxexpress#airportData",
"code": "string",
"city": "string",
"name": "string"
}
],
"city": [
{
"kind": "qpxexpress#cityData",
"code": "string",
"country": "string",
"name": "string"
}
],
"aircraft": [
{
"kind": "qpxexpress#aircraftData",
"code": "string",
"name": "string"
}
],
"tax": [
{
"kind": "qpxexpress#taxData",
"id": "string",
"name": "string"
}
],
"carrier": [
{
"kind": "qpxexpress#carrierData",
"code": "string",
"name": "string"
}
]
},
"tripOption": [
{
"kind": "qpxexpress#tripOption",
"saleTotal": "string",
"id": "string",
"slice": [
{
"kind": "qpxexpress#sliceInfo",
"duration": "integer",
"segment": [
{
"kind": "qpxexpress#segmentInfo",
"duration": "integer",
"flight": {
"carrier": "string",
"number": "string"
},
"id": "string",
"cabin": "string",
"bookingCode": "string",
"bookingCodeCount": "integer",
"marriedSegmentGroup": "string",
"subjectToGovernmentApproval": "boolean",
"leg": [
{
"kind": "qpxexpress#legInfo",
"id": "string",
"aircraft": "string",
"arrivalTime": "string",
"departureTime": "string",
"origin": "string",
"destination": "string",
"originTerminal": "string",
"destinationTerminal": "string",
"duration": "integer",
"operatingDisclosure": "string",
"onTimePerformance": "integer",
"mileage": "integer",
"meal": "string",
"secure": "boolean",
"connectionDuration": "integer",
"changePlane": "boolean"
}
],
"connectionDuration": "integer"
}
]
}
],
"pricing": [
{
"kind": "qpxexpress#pricingInfo",
"fare": [
{
"kind": "qpxexpress#fareInfo",
"id": "string",
"carrier": "string",
"origin": "string",
"destination": "string",
"basisCode": "string",
"private": "boolean"
}
],
"segmentPricing": [
{
"kind": "qpxexpress#segmentPricing",
"fareId": "string",
"segmentId": "string",
"freeBaggageOption": [
{
"kind": "qpxexpress#freeBaggageAllowance",
"bagDescriptor": [
{
"kind": "qpxexpress#bagDescriptor",
"commercialName": "string",
"count": "integer",
"description": [
"string"
],
"subcode": "string"
}
],
"kilos": "integer",
"kilosPerPiece": "integer",
"pieces": "integer",
"pounds": "integer"
}
]
}
],
"baseFareTotal": "string",
"saleFareTotal": "string",
"saleTaxTotal": "string",
"saleTotal": "string",
"passengers": {
"kind": "qpxexpress#passengerCounts",
"adultCount": "integer",
"childCount": "integer",
"infantInLapCount": "integer",
"infantInSeatCount": "integer",
"seniorCount": "integer"
},
"tax": [
{
"kind": "qpxexpress#taxInfo",
"id": "string",
"chargeType": "string",
"code": "string",
"country": "string",
"salePrice": "string"
}
],
"fareCalculation": "string",
"latestTicketingTime": "string",
"ptc": "string",
"refundable": "boolean"
}
]
}
]
}
}