读取自定义 JSON 并在 XML 中填充数据
Read custom JSON and fill data in XML
我需要像这样解析自定义 .json 文件:
{"04 Device Name " :
{
"ECU_1":
{
"01 Diagnostic" : "OK",
"02 CAN Id" : "123456789"
,
"01 SoftwareVersion " : {
"01 DID" : "123456789",
"02 Value " : "123456789"
}
,
"02 HardwareVersion " : {
"01 DID" : "123456789",
"02 Value " : "123456789"
}
}
}
变成自定义 .xml 像这样
<Component>
<ECUShortName>ECU_1</ECUShortName>
<LocationShortName>ECU_1_1</LocationShortName>
<LocationAccessKey>[Protocol]UDS_CAN_D.[EcuBaseVariant]BC_F213.[EcuVariant]123456789</LocationAccessKey>
<DiagnosticInfo>
<DiagnosticInfoValue>123456789</DiagnosticInfoValue>
</DiagnosticInfo>
<CommunicationProtocol>UDS</CommunicationProtocol>
<CommunicationState>8</CommunicationState>
<DTCCount>
<DTCCountValue>4</DTCCountValue>
</DTCCount>
<SWHWInformation>
<Software>
<PartNumber>
<PartNumberValue>123456789</PartNumberValue>
</PartNumber>
<Version>
<VersionValue>17/38/00</VersionValue>
</Version>
<Category>2</Category>
<Supplier>
<Code>1234</Code>
<Name>Supplier_1</Name>
</Supplier>
</Software>
<Hardware>
<PartNumber>
<PartNumberValue>123456789</PartNumberValue>
</PartNumber>
<Version>
<VersionValue>15/44/01</VersionValue>
</Version>
<Supplier>
<Code>1234</Code>
<Name>Supplier_1</Name>
</Supplier>
</Hardware>
</SWHWInformation>
我几乎可以使用任何语言,但想不出最适合的。
VisualBasic 适合 XML,JS 适合 JSON。
但是 JSON...
格式不正确
你知道怎么做吗?
XSLT 3.0 对此非常有用。您可以只编写一个 XML 样式的模板并使用从 JSON:
中提取的值填充它
<xsl:variable name="json" select="json-doc('input.json')"/>
<Component>
<ECUShortName>{$json?ECU_SHORT_NAME}</ECUShortName>
<LocationShortName>{$json?Location?ShortName}</LocationShortName>
等等
当然,这只是一个草图,因为您只提供了实际数据的草图。
我需要像这样解析自定义 .json 文件:
{"04 Device Name " :
{
"ECU_1":
{
"01 Diagnostic" : "OK",
"02 CAN Id" : "123456789"
,
"01 SoftwareVersion " : {
"01 DID" : "123456789",
"02 Value " : "123456789"
}
,
"02 HardwareVersion " : {
"01 DID" : "123456789",
"02 Value " : "123456789"
}
}
}
变成自定义 .xml 像这样
<Component>
<ECUShortName>ECU_1</ECUShortName>
<LocationShortName>ECU_1_1</LocationShortName>
<LocationAccessKey>[Protocol]UDS_CAN_D.[EcuBaseVariant]BC_F213.[EcuVariant]123456789</LocationAccessKey>
<DiagnosticInfo>
<DiagnosticInfoValue>123456789</DiagnosticInfoValue>
</DiagnosticInfo>
<CommunicationProtocol>UDS</CommunicationProtocol>
<CommunicationState>8</CommunicationState>
<DTCCount>
<DTCCountValue>4</DTCCountValue>
</DTCCount>
<SWHWInformation>
<Software>
<PartNumber>
<PartNumberValue>123456789</PartNumberValue>
</PartNumber>
<Version>
<VersionValue>17/38/00</VersionValue>
</Version>
<Category>2</Category>
<Supplier>
<Code>1234</Code>
<Name>Supplier_1</Name>
</Supplier>
</Software>
<Hardware>
<PartNumber>
<PartNumberValue>123456789</PartNumberValue>
</PartNumber>
<Version>
<VersionValue>15/44/01</VersionValue>
</Version>
<Supplier>
<Code>1234</Code>
<Name>Supplier_1</Name>
</Supplier>
</Hardware>
</SWHWInformation>
我几乎可以使用任何语言,但想不出最适合的。 VisualBasic 适合 XML,JS 适合 JSON。 但是 JSON...
格式不正确你知道怎么做吗?
XSLT 3.0 对此非常有用。您可以只编写一个 XML 样式的模板并使用从 JSON:
中提取的值填充它<xsl:variable name="json" select="json-doc('input.json')"/>
<Component>
<ECUShortName>{$json?ECU_SHORT_NAME}</ECUShortName>
<LocationShortName>{$json?Location?ShortName}</LocationShortName>
等等
当然,这只是一个草图,因为您只提供了实际数据的草图。