如何将UniqueIdentifier序列化为字符串并返回

时间:2019-01-21 13:00:24

标签: corda

我需要在两个服务之间传递一个UniqueIdentifier作为字符串。不幸的是,如果设置了UniqueIdentifier#toString,则UniqueIdentifier.fromStringexternalId不能很好地工作。

序列化和反序列化UniqueIdentifier的规范方法是什么?

2 个答案:

答案 0 :(得分:1)

请稍等,您是否必须为您的某些业务创建UniqueIdentifier?在这种情况下,您可以从头开始创建一个UniqueIdentifier并将其作为变量在服务之间传递(事务接受外部附件)。

如果您必须“提取”您所在州的uniqueIdentifier,我认为这是不可能的。

如果我错过了要点,我要提前致歉:D

答案 1 :(得分:1)

如果您正在使用Corda的库来创建带有自定义外部ID的UniqueIdentifier集,则可以看到toString()将生成${externalId}_$id的模式,即{{1} }。

因此,要将其从该字符串转换回UniqueIdentifier,只需用dummyExternalId_10ed0cc3-7bdf-4000-b610-595e36667d7d的定界符进行分割

_

链接here

如果外部ID下划线,则可能需要您自己的函数。

if (p.text.contains("_")) {
            val ids = p.text.split("_")
            //Create UUID object from string.
            val uuid: UUID = UUID.fromString(ids[1])
            //Create UniqueIdentifier object using externalId and UUID.
            return UniqueIdentifier(ids[0], uuid)
        }