繁体   English   中英

将String表示值解析为Java类类型

[英]Parse String representation value into Java class type

我有一个Web服务,它以“动态字段”作为响应,这取决于对象的数量,字段的数量可能会变化,并且仅取决于该对象。

说明看起来像这样

<field name="ISSUER" code="ISSUER_USER">test123</field> // 1
<field name="START" code="INSURANCE_PERIOD_START">2015-05-19</field> // 2
<field name="NATURAL DISASTER" code="MOD_NATURAL_DISASTER">600.00</field>
<field name="FIRE" code="MOD_FIRE">600.00</field> // 3
<field name="VANDALISM" code="MOD_VANDALISM">600.00</field>
<field name="THEFT" code="MOD_THEFT">600.00</field>

由于这些值都是字符串,因此我需要能够为可以存储所有这些值的字段类型创建一个抽象。

现在带注释的字段1是字符串类型,可以,按常规处理正常的字符串,但是2是日期表示形式,我需要将其转换为前端的其他模式, 3是金额字段,这需要例如成为BigDecimal。

在不同的列表中,所有类型的field都有类似的字段负载。

我想要一个具有变量String name; FieldDataString name; 值是通用的,取决于解析的Class<?> value或其他Class<?> value 我不知道。 或者它也可以是值的String并在分配之前进行解析,以便最终表示形式可以是所有值的String格式。

我的问题是:我应该如何编写解析器,以便确定该字段是否应转换为十进制;如果该字段是日期,则应解析为另一种日期格式;对于其他字符串,只需分配当前值即可。

有什么建议么? 提前致谢!

最好的解决方案是更新Web服务以为字段标记提供type属性。 失败时,您可以使用一组正则表达式尝试将每个正则表达式从最特定的匹配到最通用。 因此,您尝试解析日期,如果它未能将其解析为整数,如果它未能将其解析为double,则如果它们全部都失败,则最后将其视为字符串值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM