Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何从这个示例JSON创建POJO?_Java_Json_Pojo_Jsonschema2pojo - Fatal编程技术网

Java 如何从这个示例JSON创建POJO?

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",

我正在尝试从API中为以下JSON创建POJO

当我将其复制并粘贴到中时,我在第5行
“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"
          }
        ]
      }
    ]
  }
}