By bleg , 19 February, 2019 Forums Gurux DLMS for Java is there a simple way to serialize dlms object into xml or json (even better)? Serializing Dlms object Hi, You can save COSEM objects to xml (file or OutputStream) using GXDLMSObjectCollection.save method. JSON is not supported at the moment. BR, Mikko Thank you. I’ll try that Thank you. I’ll try that You can use XStream You can use XStream from ThoughtWorks. You can use it to serialize and deserialize pretty much any Java object to/from XML and JSON. You can use XStream Hi, That is true. We have made own serializer because we must use same xml for several languages, like java, C#, Python, etc. If you are using xml only java apps, you can use what serializer you want to. BR, Mikko Hi Mikko, Hi Mikko, As you suggested, I saved COSEM object using GXDLMSObjectCollection.save. Now I am getting following XML. -------------------------------------------------------------- <?xml version="1.0" encoding="utf-8"?> <Objects> <GXDLMSAssociationLogicalName> <LN>0.0.40.0.0.255</LN> <Description>Invalid</Description> <ApplicationContextName> <JointIsoCtt>2</JointIsoCtt> <Country>16</Country> <CountryName>756</CountryName> <IdentifiedOrganization>5</IdentifiedOrganization> <DlmsUA>8</DlmsUA> <ApplicationContext>1</ApplicationContext> <ContextId>1</ContextId> </ApplicationContextName> <XDLMSContextInfo> <DlmsVersionNumber>6</DlmsVersionNumber> </XDLMSContextInfo> <AuthenticationMechanismName> <JointIsoCtt>2</JointIsoCtt> <Country>16</Country> <CountryName>756</CountryName> <IdentifiedOrganization>5</IdentifiedOrganization> <DlmsUA>8</DlmsUA> <AuthenticationMechanismName>2</AuthenticationMechanismName> </AuthenticationMechanismName> <SecuritySetupReference>0.0.0.0.0.0</SecuritySetupReference> </GXDLMSAssociationLogicalName> <GXDLMSAssociationLogicalName> <LN>0.0.40.0.1.255</LN> <Description>Invalid</Description> <ApplicationContextName> <JointIsoCtt>2</JointIsoCtt> <Country>16</Country> <CountryName>756</CountryName> <IdentifiedOrganization>5</IdentifiedOrganization> <DlmsUA>8</DlmsUA> <ApplicationContext>1</ApplicationContext> <ContextId>1</ContextId> </ApplicationContextName> <XDLMSContextInfo> <DlmsVersionNumber>6</DlmsVersionNumber> </XDLMSContextInfo> <AuthenticationMechanismName> <JointIsoCtt>2</JointIsoCtt> <Country>16</Country> <CountryName>756</CountryName> <IdentifiedOrganization>5</IdentifiedOrganization> <DlmsUA>8</DlmsUA> <AuthenticationMechanismName>2</AuthenticationMechanismName> </AuthenticationMechanismName> <SecuritySetupReference>0.0.0.0.0.0</SecuritySetupReference> </GXDLMSAssociationLogicalName> <GXDLMSData> <LN>0.0.42.0.0.255</LN> <Description>Invalid</Description> </GXDLMSData> <GXDLMSClock> <LN>0.0.1.0.0.255</LN> <Description>Invalid</Description> </GXDLMSClock> </Objects> -------------------------------------------------------------- The problem with this XML is, I am not able to deserialize it. Can you please suggest any solution so that I can deserialize the XML into GXDLMSObjectCollection? BR, Bhaumik, Thanks in advance. Hi Bhaumik, Hi Bhaumik, Please, create a new topic if you have a new question. I'll answer your question there. BR, Mikko
Serializing Dlms object Hi, You can save COSEM objects to xml (file or OutputStream) using GXDLMSObjectCollection.save method. JSON is not supported at the moment. BR, Mikko
You can use XStream You can use XStream from ThoughtWorks. You can use it to serialize and deserialize pretty much any Java object to/from XML and JSON.
You can use XStream Hi, That is true. We have made own serializer because we must use same xml for several languages, like java, C#, Python, etc. If you are using xml only java apps, you can use what serializer you want to. BR, Mikko
Hi Mikko, Hi Mikko, As you suggested, I saved COSEM object using GXDLMSObjectCollection.save. Now I am getting following XML. -------------------------------------------------------------- <?xml version="1.0" encoding="utf-8"?> <Objects> <GXDLMSAssociationLogicalName> <LN>0.0.40.0.0.255</LN> <Description>Invalid</Description> <ApplicationContextName> <JointIsoCtt>2</JointIsoCtt> <Country>16</Country> <CountryName>756</CountryName> <IdentifiedOrganization>5</IdentifiedOrganization> <DlmsUA>8</DlmsUA> <ApplicationContext>1</ApplicationContext> <ContextId>1</ContextId> </ApplicationContextName> <XDLMSContextInfo> <DlmsVersionNumber>6</DlmsVersionNumber> </XDLMSContextInfo> <AuthenticationMechanismName> <JointIsoCtt>2</JointIsoCtt> <Country>16</Country> <CountryName>756</CountryName> <IdentifiedOrganization>5</IdentifiedOrganization> <DlmsUA>8</DlmsUA> <AuthenticationMechanismName>2</AuthenticationMechanismName> </AuthenticationMechanismName> <SecuritySetupReference>0.0.0.0.0.0</SecuritySetupReference> </GXDLMSAssociationLogicalName> <GXDLMSAssociationLogicalName> <LN>0.0.40.0.1.255</LN> <Description>Invalid</Description> <ApplicationContextName> <JointIsoCtt>2</JointIsoCtt> <Country>16</Country> <CountryName>756</CountryName> <IdentifiedOrganization>5</IdentifiedOrganization> <DlmsUA>8</DlmsUA> <ApplicationContext>1</ApplicationContext> <ContextId>1</ContextId> </ApplicationContextName> <XDLMSContextInfo> <DlmsVersionNumber>6</DlmsVersionNumber> </XDLMSContextInfo> <AuthenticationMechanismName> <JointIsoCtt>2</JointIsoCtt> <Country>16</Country> <CountryName>756</CountryName> <IdentifiedOrganization>5</IdentifiedOrganization> <DlmsUA>8</DlmsUA> <AuthenticationMechanismName>2</AuthenticationMechanismName> </AuthenticationMechanismName> <SecuritySetupReference>0.0.0.0.0.0</SecuritySetupReference> </GXDLMSAssociationLogicalName> <GXDLMSData> <LN>0.0.42.0.0.255</LN> <Description>Invalid</Description> </GXDLMSData> <GXDLMSClock> <LN>0.0.1.0.0.255</LN> <Description>Invalid</Description> </GXDLMSClock> </Objects> -------------------------------------------------------------- The problem with this XML is, I am not able to deserialize it. Can you please suggest any solution so that I can deserialize the XML into GXDLMSObjectCollection? BR, Bhaumik, Thanks in advance.
Hi Bhaumik, Hi Bhaumik, Please, create a new topic if you have a new question. I'll answer your question there. BR, Mikko
Serializing Dlms object
Hi,
You can save COSEM objects to xml (file or OutputStream) using GXDLMSObjectCollection.save method.
JSON is not supported at the moment.
BR,
Mikko
Thank you. I’ll try that
Thank you. I’ll try that
You can use XStream
You can use XStream from ThoughtWorks. You can use it to serialize and deserialize pretty much any Java object to/from XML and JSON.
You can use XStream
Hi,
That is true. We have made own serializer because we must use same xml for several languages, like java, C#, Python, etc. If you are using xml only java apps, you can use what serializer you want to.
BR,
Mikko
Hi Mikko,
Hi Mikko,
As you suggested, I saved COSEM object using GXDLMSObjectCollection.save.
Now I am getting following XML.
--------------------------------------------------------------
<?xml version="1.0" encoding="utf-8"?>
<Objects>
<GXDLMSAssociationLogicalName>
<LN>0.0.40.0.0.255</LN>
<Description>Invalid</Description>
<ApplicationContextName>
<JointIsoCtt>2</JointIsoCtt>
<Country>16</Country>
<CountryName>756</CountryName>
<IdentifiedOrganization>5</IdentifiedOrganization>
<DlmsUA>8</DlmsUA>
<ApplicationContext>1</ApplicationContext>
<ContextId>1</ContextId>
</ApplicationContextName>
<XDLMSContextInfo>
<DlmsVersionNumber>6</DlmsVersionNumber>
</XDLMSContextInfo>
<AuthenticationMechanismName>
<JointIsoCtt>2</JointIsoCtt>
<Country>16</Country>
<CountryName>756</CountryName>
<IdentifiedOrganization>5</IdentifiedOrganization>
<DlmsUA>8</DlmsUA>
<AuthenticationMechanismName>2</AuthenticationMechanismName>
</AuthenticationMechanismName>
<SecuritySetupReference>0.0.0.0.0.0</SecuritySetupReference>
</GXDLMSAssociationLogicalName>
<GXDLMSAssociationLogicalName>
<LN>0.0.40.0.1.255</LN>
<Description>Invalid</Description>
<ApplicationContextName>
<JointIsoCtt>2</JointIsoCtt>
<Country>16</Country>
<CountryName>756</CountryName>
<IdentifiedOrganization>5</IdentifiedOrganization>
<DlmsUA>8</DlmsUA>
<ApplicationContext>1</ApplicationContext>
<ContextId>1</ContextId>
</ApplicationContextName>
<XDLMSContextInfo>
<DlmsVersionNumber>6</DlmsVersionNumber>
</XDLMSContextInfo>
<AuthenticationMechanismName>
<JointIsoCtt>2</JointIsoCtt>
<Country>16</Country>
<CountryName>756</CountryName>
<IdentifiedOrganization>5</IdentifiedOrganization>
<DlmsUA>8</DlmsUA>
<AuthenticationMechanismName>2</AuthenticationMechanismName>
</AuthenticationMechanismName>
<SecuritySetupReference>0.0.0.0.0.0</SecuritySetupReference>
</GXDLMSAssociationLogicalName>
<GXDLMSData>
<LN>0.0.42.0.0.255</LN>
<Description>Invalid</Description>
</GXDLMSData>
<GXDLMSClock>
<LN>0.0.1.0.0.255</LN>
<Description>Invalid</Description>
</GXDLMSClock>
</Objects>
--------------------------------------------------------------
The problem with this XML is, I am not able to deserialize it.
Can you please suggest any solution so that I can deserialize the XML into GXDLMSObjectCollection?
BR,
Bhaumik,
Thanks in advance.
Hi Bhaumik,
Hi Bhaumik,
Please, create a new topic if you have a new question. I'll answer your question there.
BR,
Mikko