无法从yaml生成示例json值

无法从yaml生成示例json值,yaml,swagger,schema,jsonschema,openapi,Yaml,Swagger,Schema,Jsonschema,Openapi,我正试图像斯威格那样将给定的yaml解析为JSON示例。我正在使用下面的yaml $id: 'https://example.com/person.schema.json' $schema: 'http://json-schema.org/draft-07/schema#' title: Person type: object properties: firstName: type: string example:MyName description: The per

我正试图像斯威格那样将给定的yaml解析为JSON示例。我正在使用下面的yaml

$id: 'https://example.com/person.schema.json'
$schema: 'http://json-schema.org/draft-07/schema#'
title: Person
type: object
properties:
  firstName:
    type: string
    example:MyName
    description: The person's first name.
  lastName:
    type: string
    description: The person's last name.
  age:
    description: Age in years which must be equal to or greater than zero.
    type: integer
    minimum: 0
我试图将这个yaml解析为它的json,如下所示。如果yaml中给出了该示例,则应显示该示例,否则应显示默认值

Person:{
   "firstName":"MyName",
   "lastName":"string",
   "age":0
}
但在解析时,我遇到了一个异常:

com.fasterxml.jackson.core.JsonParseException: Unrecognized token '$id': was expecting ('true', 'false' or 'null')
 at [Source: (String)"$id: 'https://example.com/person.schema.json'
line: 1, column: 4]
    at com.fasterxml.jackson.core.JsonParser._constructError(JsonParser.java:1804) ~[jackson-core-2.9.8.jar:2.9.8]
    at com.fasterxml.jackson.core.base.ParserMinimalBase._reportError(ParserMinimalBase.java:703) ~[jackson-core-2.9.8.jar:2.9.8]
    at com.fasterxml.jackson.core.json.ReaderBasedJsonParser._reportInvalidToken(ReaderBasedJsonParser.java:2853) ~[jackson-core-2.9.8.jar:2.9.8]
    at com.fasterxml.jackson.core.json.ReaderBasedJsonParser._handleOddValue(ReaderBasedJsonParser.java:1899) ~[jackson-core-2.9.8.jar:2.9.8]
    at com.fasterxml.jackson.core.json.ReaderBasedJsonParser.nextToken(ReaderBasedJsonParser.java:757) ~[jackson-core-2.9.8.jar:2.9.8]
    at com.fasterxml.jackson.databind.ObjectMapper._readTreeAndClose(ObjectMapper.java:4042) ~[jackson-databind-2.9.8.jar:2.9.8]
    at com.fasterxml.jackson.databind.ObjectMapper.readTree(ObjectMapper.java:2551) ~[jackson-databind-2.9.8.jar:2.9.8]
    at io.swagger.parser.SwaggerCompatConverter.readResourceListing(SwaggerCompatConverter.java:210) [swagger-compat-spec-parser-1.0.44.jar:1.0.44]
    at io.swagger.parser.SwaggerCompatConverter.read(SwaggerCompatConverter.java:123) [swagger-compat-spec-parser-1.0.44.jar:1.0.44]
    at io.swagger.parser.SwaggerCompatConverter.readWithInfo(SwaggerCompatConverter.java:94) [swagger-compat-spec-parser-1.0.44.jar:1.0.44]
    at io.swagger.parser.SwaggerParser.readWithInfo(SwaggerParser.java:42) [swagger-parser-1.0.44.jar:1.0.44]
    at io.swagger.v3.parser.converter.SwaggerConverter.readLocation(SwaggerConverter.java:92) [swagger-parser-v2-converter-2.0.12.jar:2.0.12]
    at io.swagger.v3.parser.OpenAPIV3Parser.read(OpenAPIV3Parser.java:90) [swagger-parser-v3-2.0.12.jar:2.0.12]
    at io.swagger.v3.parser.OpenAPIV3Parser.read(OpenAPIV3Parser.java:78) [swagger-parser-v3-2.0.12.jar:2.0.12]
    at com.pega.yaml.yamlToJsonExample.App.main(App.java:19) [classes/:na]
Exception in thread "main" java.lang.NullPointerException
    at io.swagger.v3.parser.OpenAPIV3Parser.read(OpenAPIV3Parser.java:91)
    at io.swagger.v3.parser.OpenAPIV3Parser.read(OpenAPIV3Parser.java:78)
    at com.pega.yaml.yamlToJsonExample.App.main(App.java:19)
我使用的是带有以下代码的swagger inflector 2.0.5:

import io.swagger.v3.parser.OpenAPIV3Parser;
import io.swagger.v3.oas.models.OpenAPI;
import io.swagger.v3.oas.models.media.Schema;
import io.swagger.oas.inflector.examples.models.Example;
import io.swagger.oas.inflector.examples.ExampleBuilder;

import java.util.Map;

import com.fasterxml.jackson.databind.module.SimpleModule;
import io.swagger.oas.inflector.processors.JsonNodeExampleSerializer;
import io.swagger.util.Json;

public class App 
{
    public static void main( String[] args )
    {
        OpenAPI swagger = new OpenAPIV3Parser().read("Eclipse Workspace1\\yamlToJsonExample\\src\\main\\java\\com\\pega\\yaml\\yamlToJsonExample\\Test.yaml");
        Map < String, Schema > definitions = swagger.getComponents().getSchemas();
        Schema model = definitions.get("Person");
        Example example = ExampleBuilder.fromSchema(model, definitions);
        SimpleModule simpleModule = new SimpleModule().addSerializer(new JsonNodeExampleSerializer());
        Json.mapper().registerModule(simpleModule);
        String jsonExample = Json.pretty(example);
        System.out.println(jsonExample);
    }
}
import io.swagger.v3.parser.OpenAPIV3Parser;
导入io.swagger.v3.oas.models.OpenAPI;
导入io.swagger.v3.oas.models.media.Schema;
导入io.swagger.oas.indlector.examples.models.Example;
导入io.swagger.oas.inflector.examples.ExampleBuilder;
导入java.util.Map;
导入com.fasterxml.jackson.databind.module.SimpleModule;
导入io.swagger.oas.拐点器.processors.JsonNodeExampleSerializer;
导入io.swagger.util.Json;
公共类应用程序
{
公共静态void main(字符串[]args)
{
OpenAPI swagger=new OpenAPIV3Parser().read(“Eclipse Workspace1\\yamlToJsonExample\\src\\main\\java\\com\\pega\\yaml\\yamlToJsonExample\\Test.yaml”);
Mapdefinitions=swagger.getComponents().getSchemas();
模式模型=definitions.get(“Person”);
Example=ExampleBuilder.fromSchema(模型、定义);
SimpleModule SimpleModule=新的SimpleModule().addSerializer(新的JsonNodeExampleSerializer());
Json.mapper().registerModule(simpleModule);
字符串jsonExample=Json.pretty(示例);
System.out.println(jsonExample);
}
}