0

我使用 swagger-maven-plugin 从一个 api 方法源代码生成 yaml:

@ApiModelProperty(value = "Сенсоры устройства", example = "{\"BATTERY\":67, \"VOLUME\":50, \"AIRPLANE\":false, \"ALARM\":true, \"CHARGE\":false, \"MUTE\":false, \"SCREEN\":true, \"WIFI\":true, \"LOCATION\": {\"latitude\":55.78409222171274,\"precision\":65.0,\"time\":\"2017-09-29T14:55:00Z\",\"detectionTechnology\":\"GPS\",\"msisdn\":\"79851620850\",\"deviceId\":\"28255923\",\"longitude\":37.62893324268332}}")

在生成的 yaml 中,我有:

example: "{\"BATTERY\":67, \"VOLUME\":50, \"AIRPLANE\":false, \"ALARM\":true,\
      \ \"CHARGE\":false, \"MUTE\":false, \"SCREEN\":true, \"WIFI\":true, \"LOCATION\"\
      : {\"latitude\":55.78409222171274,\"precision\":65.0,\"time\":\"2017-09-29T14:55:00Z\"\
      ,\"detectionTechnology\":\"GPS\",\"msisdn\":\"79851620850\",\"deviceId\"\
      :\"28255923\",\"longitude\":37.62893324268332}}"

之后,我使用 swagger-codegen-maven-plugin 将 api 方法生成回 java 并得到了这个:

@ApiModelProperty(example = "\"{\\\"BATTERY\\\":67, \\\"VOLUME\\\":50, \\\"AIRPLANE\\\":false, \\\"ALARM\\\":true, \\\"CHARGE\\\":false, \\\"MUTE\\\":false, \\\"SCREEN\\\":true, \\\"WIFI\\\":true, \\\"LOCATION\\\": {\\\"latitude\\\":55.78409222171274,\\\"precision\\\":65.0,\\\"time\\\":\\\"2017-09-29T14:55:00Z\\\",\\\"detectionTechnology\\\":\\\"GPS\\\",\\\"msisdn\\\":\\\"79851620850\\\",\\\"deviceId\\\":\\\"28255923\\\",\\\"longitude\\\":37.62893324268332}}\"", value = "Сенсоры устройства")

还有更多 - 在为 tis api 方法生成的控制器中,我有另一个结果:

"sensors" : \"{\\"BATTERY\\":67, \\"VOLUME\\":50, \\"AIRPLANE\\":false, \\"ALARM\\":true, \\"CHARGE\\":false, \\"MUTE\\":false, \\"SCREEN\\":true, \\"WIFI\\":true, \\"LOCATION\\": {\\"latitude\\":55.78409222171274,\\"precision\\":65.0,\\"time\\":\\"2017-09-29T14:55:00Z\\",\\"detectionTechnology\\":\\"GPS\\",\\"msisdn\\":\\"79851620850\\",\\"deviceId\\":\\"28255923\\",\\"longitude\\":37.62893324268332}}\"

这里的代码被破坏了!\\" - 不是有效的序列

4

1 回答 1

0

反斜杠用于转义特定字符,例如 '" ' :字符串的结尾或 '\' :传入的特殊字符。

于 2019-08-19T08:57:53.047 回答