Xbasic
json_to_xml Function
IN THIS PAGE
Syntax
c xml = json_to_xml(json as C [, attribute as C [, format as C ]])
Arguments
- jsonCharacter
- attributeCharacter
- formatCharacter
Format to use when generating the XML.
Description
json_to_xml Function - Convert JSON to XML - Takes a string of JSON data and converts it to XML. json_to_xml Function - ATOM Format - The json_to_xml function can now generate XML using the "atom" format:
Example
dim json as c json = <<%txt% { "firstname" : "john" , "lastname" : "public" , "num" : [1,2,3] , "flag" : true , "place" : { "state" : "Texas"} } %txt% dim xml as c xml = json_to_xml(json, "person") showvar(xml)
The resulting XML string looks like this:
<?xml version="1.0" encoding="UTF-8"?> <person> <firstname>john</firstname> <lastname>public</lastname> <num>1</num> <num>2</num> <num>3</num> <flag>true</flag> <place> <state>Texas</state> </place> </person>
Formatting XML in ATOM Format
XML can also be formatted by specifying an optional third parameter, format. Consider the following example:
js = <<%str% { "OrderId":10248, "ProductID":11, "UnitPrice":14, "Quantity":12, "Discount":0 } %str% dim xml as c xml = json_to_xml(js) showvar(xml)
This generates xml using the default encoding:
<?xml version="1.0" encoding="UTF-8"?> <data> <OrderId>10248</OrderId> <ProductID>11</ProductID> <UnitPrice>14</UnitPrice> <Quantity>12</Quantity> <Discount>0</Discount> </data>
To convert the JSON to xml using the atom format, the format is defined and passed into the json_to_xml function:
dim format as c format = <<%str% { "format" : "atom"} %str% dim xml as c = json_to_xml(js,"",format) showvar(xml)
The resulting XML is in Atom format:
<?xml version="1.0" encoding="UTF-8"?> <atom:entry xmlns:atom="http://www.w3.org/2005/Atom" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices"> <atom:content type="application/xml"> <m:properties> <d:OrderId>10248</d:OrderId> <d:ProductID>11</d:ProductID> <d:UnitPrice>14</d:UnitPrice> <d:Quantity>12</d:Quantity> <d:Discount>0</d:Discount> </m:properties> </atom:content> </atom:entry>
Here is another example that demonstrates generating xml using the Atom format:
js = <<%str% { "OrderId":10248, "ProductID":11, "UnitPrice":14, "Quantity":12, "Discount":0 } %str% dim xml as c xml = json_to_xml(js) ? xml = <?xml version="1.0" encoding="UTF-8"?> <data> <OrderId>10248</OrderId> <ProductID>11</ProductID> <UnitPrice>14</UnitPrice> <Quantity>12</Quantity> <Discount>0</Discount> </data> dim format as c format = <<%str% { "format" : "atom"} %str% dim xml as c = json_to_xml(js,"",format) ?xml = <?xml version="1.0" encoding="UTF-8"?> <atom:entry xmlns:atom="http://www.w3.org/2005/Atom" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices"> <atom:content type="application/xml"> <m:properties> <d:OrderId>10248</d:OrderId> <d:ProductID>11</d:ProductID> <d:UnitPrice>14</d:UnitPrice> <d:Quantity>12</d:Quantity> <d:Discount>0</d:Discount> </m:properties> </atom:content> </atom:entry>
See Also