Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何在swagger中将joda dateTime转换为字符串

如何在swagger中将joda dateTime转换为字符串
EN

Stack Overflow用户
提问于 2016-11-26 05:56:16
回答 1查看 1.1K关注 0票数 1

在swagger内核版本1.3.x中,我们能够通过使用以下代码来控制DateTime的呈现,这一点在链接中也提到过:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import com.wordnik.swagger.converter.*;

String jsonString = "{" +
"  \"id\": \"Date\"," +
"  \"properties\": {" +
"    \"value\": {" +
"      \"required\": true," +
"      \"description\": \"Date in ISO-8601 format\"," +
"      \"notes\": \"Add any notes you like here\"," +
"      \"type\": \"string\"," +
"      \"format\": \"date-time\"" +
"    }" +
"  }" +
"}";
OverrideConverter converter = new OverrideConverter();
converter.add("java.util.Date", jsonString);

ModelConverters.addConverter(converter, true);

但是这个解决方案在swagger2.0中行不通,因为我无法在swagger2.0中找到OverrideConvertor。

目前,我的代码中的日期时间正在呈现如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
LocalDateTime {
chronology (Chronology, optional),
weekOfWeekyear (integer, optional),
weekyear (integer, optional),
monthOfYear (integer, optional),
yearOfEra (integer, optional),
yearOfCentury (integer, optional),
centuryOfEra (integer, optional),
millisOfSecond (integer, optional),
millisOfDay (integer, optional),
secondOfMinute (integer, optional),
minuteOfHour (integer, optional),
hourOfDay (integer, optional),
year (integer, optional),
dayOfMonth (integer, optional),
dayOfWeek (integer, optional),
era (integer, optional),
dayOfYear (integer, optional),
fields (Array[DateTimeField], optional),
fieldTypes (Array[DateTimeFieldType], optional),
values (Array[integer], optional)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-12-13 15:10:22

我不知道如何将您的自定义转换器添加到swagger1.5。但是,这些是解决用例的方法:

您可以在生成的swagger对象中创建一个Model并替换它,然后再将它转换为Json。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ModelImpl m = new ModelImpl()
          .description("LocalDateTime in ISO format")
          .format("ISO DateTime")
          .name("DateTime")
          .type("string");
Response response = getListingJsonResponse(app, context, sc, headers, uriInfo);
Swagger swagger = (Swagger) response.getEntity();
swagger.getDefinitions().put("LocalDateTime", m);

它将用字符串类型模型替换LocalDateTime的定义。

另一种方法是迭代定义,无论在哪里看到对LocalDateTime的引用类型,都可以用字符串类型替换它:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Map<String, Model> definitions = swagger.getDefinitions();
  for(Map.Entry<String, Model> e : definitions.entrySet()){
    Map<String, Property> propertyMap = e.getValue().getProperties();
    for(String key : propertyMap.keySet()){
      Property value = propertyMap.get(key);
      if(value.getType().equals("ref") && ((RefProperty) value).getSimpleRef().equals("LocalDateTime")){
        propertyMap.put(key, new StringProperty("LocalDateTime in ISO format")
                .example("dd-mm-yyyy")
                .pattern("pattern")
                .description("ISO format string"));
      }
    }
  }

到目前为止,我还不知道有其他更清洁的方式来实现这一点。

更新

Swagger有一个DateTime映射,而不是LocalDateTime映射。因此,如果对您有效,也可以考虑将您的类型移动到DateTime

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40819084

复制
相关文章
LINQ在开发中的地位?
DLINQ *.dbml文件该属于哪一层,的确Linq to Sql存在问题,DLINQ中,虽然可以在语言层级定义查询逻辑。但是依然没有将数据库持久化数据映射为领域对象,所以还是一种针对数据库的编程模型。 LINQ是微软将在C# 3.0中将推出的语言集成查询技术,许多人也将LINQ叫做微软的ORM。LINQ不仅仅针对关系数据库,它只是解决一个问题Data!=Object,也就是说他解决的就是Data=Object.。作为底层框架,可以为ORM实现提供更强大的基础平台。在Linq之前在.net领域最流行的框架
张善友
2018/01/31
1.4K0
linq to sql中的自动缓存(对象跟踪)
这篇东西应该至少一年前就写的,不过因为个人太懒,一直没记下来,今天补上. linq to sql中,对于同一个DataContext上下文环境,根据表主键选择记录时(当然这里所指的“记录”会自动转成“对象”),如果该记录已经被select过,默认情况下会被自动缓存下来,下次再选择时,将自动返回已缓存的对象,而不是重新从数据库里查询。 在很多情况下(特别是查询的场景),这会提高性能(因为避免了数据库重复查询),但是也时候也会带来麻烦: 比如我们取出一个对象后,对其属性做了修改,然后提交到数据库前,想比较一下原
菩提树下的杨过
2018/01/23
1.4K0
linq to sql中的自动缓存(对象跟踪)
在VS中调试LINQ(Lambda)
Linq调试有3种方法,准确来说是2种,因为LinqPad算是复制代码段到外部了。。
过千帆
2021/04/08
4.7K0
linq to sql中慎用Where<T>(Func<TSource, bool> predicate),小心被Linq给"骗"了!
近日在一个大型Web项目中,采用Linq to Sql替换原来的sqlcommand/sqldatareader方式来获取数据,上线后刚开始一切正常,但是随着访问量的增加,网站明显慢了很多,监测服务器CPU占用率/内存使用情况等性能指标却发现均在正常范围内,无意中在SqlServer Profier中跟踪数据库执行的sql语句时,发现有大量语句直接将整个表的数据全部提取出来了,而非仅返回分页中的当前页数据! 而这些SQL都是Linq自动翻译并最终提交到数据库的,查看了相关的代码,明明写着Skip(n
菩提树下的杨过
2018/01/24
1K0
Linq to xml API中 XName 的奇怪实现
    最近,在使用LinqToXml的时候,使用到其中一个重要的类:XName。它表示一个XML元素/XML属性的“名字”。    System.Xml.Linq中的API,大量使用了这个类,如:
用户1172223
2018/01/26
9830
.NET 7 中 LINQ 的疯狂性能提升
LINQ 是 Language INtegrated Query 单词的首字母缩写,翻译过来是语言集成查询。它为查询跨各种数据源和格式的数据提供了一致的模型,所以叫集成查询。由于这种查询并没有制造新的语言而只是在现有的语言基础上来实现,所以叫语言集成查询。
张善友
2022/11/14
9490
.NET 7 中 LINQ 的疯狂性能提升
LINQ
select:提取要查询的数据                 where:筛选满足条件的元素   
易墨
2018/09/14
1.9K0
LINQ
C#3.0新增功能09 LINQ 基础06 LINQ 查询操作中的类型关系
若要有效编写查询,应了解完整的查询操作中的变量类型是如何全部彼此关联的。 如果了解这些关系,就能够更容易地理解文档中的 LINQ 示例和代码示例。 另外,还能了解在使用 var 隐式对变量进行类型化时的后台操作。
张传宁IT讲堂
2019/09/17
9890
C#3.0新增功能09 LINQ 基础06 LINQ 查询操作中的类型关系
.NET中数据访问方式(一):LINQ
语言集成查询(Language-Integrated Query),简称LINQ,.NET中的LINQ体系如下图所示:
雪飞鸿
2018/09/05
2.7K0
.NET中数据访问方式(一):LINQ
.NET深入解析LINQ框架(二:LINQ优雅的前奏)
例子说明:假设我有一个表示学生的对象类型还有一个表示学生集合的类型。学生集合类型主要就是用来容纳学生实体,集合类型提供一系列的方法可以对这个集合进行连续的操作,很常用的就是筛选操作。比如筛选出所有性别是女生的学生,然后再在所有已经筛选出来的女性学生的集合当中筛选出年龄大于20周岁的学生列表,再继续筛选来自江苏南京地区的学生列表等等这一系列的连贯操作。这样的处理方式我想是LINQ最为常见的,毕竟LINQ是为了查询而生,而查询主要就是面向集合类的数据。
王清培
2019/03/01
2.1K0
.NET深入解析LINQ框架(二:LINQ优雅的前奏)
EF Linq中的左连接Left Join查询
linq中的join是inner join内连接,就是当两个表中有一个表对应的数据没有的时候那个关联就不成立。
跟着阿笨一起玩NET
2020/08/10
5K0
Linq 学习笔记之 linq to object
TakeWhile 方法用于取序列中从头开始算起符合条件的元素直到遇到不符合条件的元素为止。
DougWang
2020/02/17
6660
[C#] 走进 LINQ 的世界
    技巧:《Linq To Objects – 如何操作字符串》 和 《Linq To Objects – 如何操作文件目录》
全栈程序员站长
2022/09/06
4.6K0
[C#] 走进 LINQ 的世界
LinQ的学习(一)
LinQ使得开发人员可以象查询数据库一样来查询自己的对象,包括数组,xml,mdf文件等等。而LinQ提供了几乎统一的访问方式。
全栈程序员站长
2022/09/05
2140
.NET深入解析LINQ框架(一:LINQ优雅的前奏)
LINQ简称语言集成查询,设计的目的是为了解决在.NET平台上进行统一的数据查询。
王清培
2019/03/01
1.9K0
.NET深入解析LINQ框架(一:LINQ优雅的前奏)
C#3.0新增功能09 LINQ 基础07 LINQ 中的查询语法和方法语法
介绍性的语言集成查询 (LINQ) 文档中的大多数查询是使用 LINQ 声明性查询语法编写的。但是在编译代码时,查询语法必须转换为针对 .NET 公共语言运行时 (CLR) 的方法调用。 这些方法调用会调用标准查询运算符(名称为 Where、Select、GroupBy、Join、Max 和 Average 等)。 可以使用方法语法(而不查询语法)来直接调用它们。
张传宁IT讲堂
2019/09/17
3.9K0
C#3.0新增功能09 LINQ 基础07 LINQ 中的查询语法和方法语法
LINQ初步
语言集查询(Language Integrated Query, LINQ)集成了C#编程语言中的查询语法,可以用同样的语法访问不同的数据源。LINQ提供了不同数据源的抽象层,可以使用相同的语法。
卡尔曼和玻尔兹曼谁曼
2019/01/25
1.7K0
LINQ初步
.NET深入解析LINQ框架(三:LINQ优雅的前奏)
在上述代码中的“(1)重点”的地方,我们很清楚的看见表达式树被动态编译后然后紧接着又被执行,这里就能看出为什么IEnumerable<T>对象需要能够被转换成IQueryable<T>对象。这样就可以消除IEnumerable<T>、IQueryable<T>这两个接口之间的动态查询瓶颈。
王清培
2019/03/01
1.7K0
.NET深入解析LINQ框架(三:LINQ优雅的前奏)
Linq Like的操作
Like的操作,有点像in,但是,方向变了。什么意思呢。就是你给定一个字符串,去寻找数据中某个字段包含这个字符串。就是给定的字符串是某字段的子集。Sql Script是这么写的。 Selec * from table where id like '%AD%'Selec * from table where id like '%AD'Selec * from table where id like 'AD%'上面的%是通配符,表示,该字段含有某个值,不知道的位置使用%代替。第一个是表示中间一段是AD,两头
逸鹏
2018/04/10
8250
LINQ to JavaScript
JSLINQ 是一个将LINQ对象转化为JavaScript对象的工具 。它是构建在JavaScript的数组对象的基础上进行转换的,如果您使用的是一个数组,你可以使用LINQ到javascript 。
跟着阿笨一起玩NET
2018/09/19
7740

相似问题

DateTime.Compare验证

12

c#中的DateTime.Compare

16

这是.net DateTime.Compare函数中的错误吗?

27

DateTime.Compare没有按预期工作

22

DateTime.Compare(开始,结束)结果在我的系统中

48
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文