当从 xsd 模式创建 Jsonix (2.x) 映射文件时,它会捕获枚举和所有可接受的值,例如
{
type: 'enumInfo',
localName: 'TrackAdvanceNotificationStatusType',
baseTypeInfo: 'String',
values: ['BACK_ON_TRACK', 'FAIL']
}
有什么方法可以方便地在我的 javascript 代码中利用这些枚举值,还是它们仅供 Jsonix 内部使用?
最佳答案
免责声明:我是 Jsonix 的作者.
是的,您可以:
- 从 Jsonix 上下文中执行
context.getTypeInfoByTypeNameKey('{urn:ns}TrackAdvanceNotificationStatusType')
通过 XML 架构类型名称查找类型。在下一个版本中,您将拥有更方便的context.getTypeInfoByTypeName(...)
,它接受限定名称或字符串。 - 您将获得您的类型信息的实例。如果是枚举,这将是
Jsonix.Model.EnumLeafInfo
的实例。 typeInfo.entries
是字符串值/未编码值的键/值 HashMap 。
但这里有一个警告:我还没有引入公共(public)/私有(private) API 的概念。因此,该 API 在未来版本中发生更改的可能性极小。这不太可能,但值得警告。
最好使用 Jsonix 准备的类型信息,因为它将具有枚举的字符串值以及解析的值。对于基于字符串的枚举,这是无关紧要的,但如果您有其他非字符串简单类型,您可能会对“真实”值感兴趣。
关于javascript - Jsonix 枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29521780/