JSON — json-lib ——— XML与json互转 实例代码片断(二)

本文介绍如何使用Java实现JSON与XML之间的相互转换,包括不同配置下的转换方式,如禁用类型提示、更改节点名称等,并展示了如何将JSON数组扁平化到父元素中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Snippets 

From XML to JSON

  1. XML to JSONObject

From JSON to XML

JSONObject to XML

  1. String str = "{'name':'JSON','integer':1,'double':2.0,'boolean':true,'nested':{'id':42},'array':[1,2,3]}";   
  2. JSON json = JSONSerializer.toJSON( str );   
  3. XMLSerializer xmlSerializer = new XMLSerializer();   
  4. String xml = xmlSerializer.write( json );   
  5. System.out.println(xml);   
String str = "{'name':'JSON','integer':1,'double':2.0,'boolean':true,'nested':{'id':42},'array':[1,2,3]}"; JSON json = JSONSerializer.toJSON( str ); XMLSerializer xmlSerializer = new XMLSerializer(); String xml = xmlSerializer.write( json ); System.out.println(xml);
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <o>  
  3.    <boolean type="boolean">true</boolean>  
  4.    <double type="number">2.0</double>  
  5.    <integer type="number">1</integer>  
  6.    <name type="string">JSON</name>  
  7.    <nested class="object">  
  8.       <id type="number">42</id>  
  9.    </nested>  
  10.    <array class="array">  
  11.       <e type="number">1</e>  
  12.       <e type="number">2</e>  
  13.       <e type="number">3</e>  
  14.    </array>  
  15. </o>  
<?xml version="1.0" encoding="UTF-8"?> <o> <boolean type="boolean">true</boolean> <double type="number">2.0</double> <integer type="number">1</integer> <name type="string">JSON</name> <nested class="object"> <id type="number">42</id> </nested> <array class="array"> <e type="number">1</e> <e type="number">2</e> <e type="number">3</e> </array> </o> [ Index| From JSON to XML]

JSONObject to XML (no type hints)

  1. String str = "{'name':'JSON','integer':1,'double':2.0,'boolean':true,'nested':{'id':42},'array':[1,2,3]}";   
  2. JSON json = JSONSerializer.toJSON( str );   
  3. XMLSerializer xmlSerializer = new XMLSerializer();   
  4. xmlSerializer.setTypeHintsEnabled( false );   
  5. String xml = xmlSerializer.write( json );   
  6. System.out.println(xml);   
String str = "{'name':'JSON','integer':1,'double':2.0,'boolean':true,'nested':{'id':42},'array':[1,2,3]}"; JSON json = JSONSerializer.toJSON( str ); XMLSerializer xmlSerializer = new XMLSerializer(); xmlSerializer.setTypeHintsEnabled( false ); String xml = xmlSerializer.write( json ); System.out.println(xml);
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <o>  
  3.    <boolean>true</boolean>  
  4.    <double>2.0</double>  
  5.    <integer>1</integer>  
  6.    <name>JSON</name>  
  7.    <nested>  
  8.       <id>42</id>  
  9.    </nested>  
  10.    <array>  
  11.       <e>1</e>  
  12.       <e>2</e>  
  13.       <e>3</e>  
  14.    </nested>  
  15. </o>  
<?xml version="1.0" encoding="UTF-8"?> <o> <boolean>true</boolean> <double>2.0</double> <integer>1</integer> <name>JSON</name> <nested> <id>42</id> </nested> <array> <e>1</e> <e>2</e> <e>3</e> </nested> </o> [ Index| From JSON to XML]

JSONObject to XML (with json prefix)

  1. String str = "{'name':'JSON','integer':1,'double':2.0,'boolean':true,'nested':{'id':42},'array':[1,2,3]}";   
  2. JSON json = JSONSerializer.toJSON( str );   
  3. XMLSerializer xmlSerializer = new XMLSerializer();   
  4. xmlSerializer.setTypeHintsCompatibility( false );   
  5. String xml = xmlSerializer.write( json );   
  6. System.out.println(xml);   
String str = "{'name':'JSON','integer':1,'double':2.0,'boolean':true,'nested':{'id':42},'array':[1,2,3]}"; JSON json = JSONSerializer.toJSON( str ); XMLSerializer xmlSerializer = new XMLSerializer(); xmlSerializer.setTypeHintsCompatibility( false ); String xml = xmlSerializer.write( json ); System.out.println(xml);
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <o>  
  3.    <boolean json_type="boolean">true</boolean>  
  4.    <double json_type="number">2.0</double>  
  5.    <integer json_type="number">1</integer>  
  6.    <name json_type="string">JSON</name>  
  7.    <nested json_class="object">  
  8.       <id json_type="number">42</id>  
  9.    </nested>  
  10.    <array json_class="array">  
  11.       <e json_type="number">1</e>  
  12.       <e json_type="number">2</e>  
  13.       <e json_type="number">3</e>  
  14.    </array>  
  15. </o>  
<?xml version="1.0" encoding="UTF-8"?> <o> <boolean json_type="boolean">true</boolean> <double json_type="number">2.0</double> <integer json_type="number">1</integer> <name json_type="string">JSON</name> <nested json_class="object"> <id json_type="number">42</id> </nested> <array json_class="array"> <e json_type="number">1</e> <e json_type="number">2</e> <e json_type="number">3</e> </array> </o> [ Index| From JSON to XML]

JSONObject to XML (change node names)

  1. String str = "{'name':'JSON','integer':1,'double':2.0,'boolean':true,'nested':{'id':42},'array':[1,2,3]}";   
  2. JSON json = JSONSerializer.toJSON( str );   
  3. XMLSerializer xmlSerializer = new XMLSerializer();   
  4. xmlSerializer.setRootName( "root" );   
  5. xmlSerializer.setElementName( "element" );   
  6. String xml = xmlSerializer.write( json );   
  7. System.out.println(xml);   
String str = "{'name':'JSON','integer':1,'double':2.0,'boolean':true,'nested':{'id':42},'array':[1,2,3]}"; JSON json = JSONSerializer.toJSON( str ); XMLSerializer xmlSerializer = new XMLSerializer(); xmlSerializer.setRootName( "root" ); xmlSerializer.setElementName( "element" ); String xml = xmlSerializer.write( json ); System.out.println(xml);
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <root>  
  3.    <boolean type="boolean">true</boolean>  
  4.    <double type="number">2.0</double>  
  5.    <integer type="number">1</integer>  
  6.    <name type="string">JSON</name>  
  7.    <nested class="object">  
  8.       <id type="number">42</id>  
  9.    </nested>  
  10.    <array class="array">  
  11.       <element type="number">1</e>  
  12.       <element type="number">2</e>  
  13.       <element type="number">3</e>  
  14.    </array>  
  15. </root>  
<?xml version="1.0" encoding="UTF-8"?> <root> <boolean type="boolean">true</boolean> <double type="number">2.0</double> <integer type="number">1</integer> <name type="string">JSON</name> <nested class="object"> <id type="number">42</id> </nested> <array class="array"> <element type="number">1</e> <element type="number">2</e> <element type="number">3</e> </array> </root> [ Index| From JSON to XML]

JSONArray to XML

  1. String str = "['JSON', 1, 2.0, true, {'id':42}, [1,2,3]]";   
  2. JSON json = JSONSerializer.toJSON( str );   
  3. XMLSerializer xmlSerializer = new XMLSerializer();   
  4. String xml = xmlSerializer.write( json );   
  5. System.out.println(xml);   
String str = "['JSON', 1, 2.0, true, {'id':42}, [1,2,3]]"; JSON json = JSONSerializer.toJSON( str ); XMLSerializer xmlSerializer = new XMLSerializer(); String xml = xmlSerializer.write( json ); System.out.println(xml);
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <a>  
  3.    <e type="string">JSON</e>  
  4.    <e type="number">1</e>  
  5.    <e type="number">2.0</e>  
  6.    <e type="boolean">true</e>  
  7.    <e class="object">  
  8.       <id type="number">42</id>  
  9.    </e>  
  10.    <e class="array">  
  11.       <e type="number">1</e>  
  12.       <e type="number">2</e>  
  13.       <e type="number">3</e>  
  14.    </e>  
  15. </a>  
<?xml version="1.0" encoding="UTF-8"?> <a> <e type="string">JSON</e> <e type="number">1</e> <e type="number">2.0</e> <e type="boolean">true</e> <e class="object"> <id type="number">42</id> </e> <e class="array"> <e type="number">1</e> <e type="number">2</e> <e type="number">3</e> </e> </a> [ Index| From JSON to XML]

JSONArray to XML (no type hints)

  1. String str = "['JSON', 1, 2.0, true, {'id':42}, [1,2,3]]";   
  2. JSON json = JSONSerializer.toJSON( str );   
  3. XMLSerializer xmlSerializer = new XMLSerializer();   
  4. xmlSerializer.setTypeHintsEnabled( false );   
  5. String xml = xmlSerializer.write( json );   
  6. System.out.println(xml);   
String str = "['JSON', 1, 2.0, true, {'id':42}, [1,2,3]]"; JSON json = JSONSerializer.toJSON( str ); XMLSerializer xmlSerializer = new XMLSerializer(); xmlSerializer.setTypeHintsEnabled( false ); String xml = xmlSerializer.write( json ); System.out.println(xml);
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <a>  
  3.    <e>JSON</e>  
  4.    <e>1</e>  
  5.    <e>2.0</e>  
  6.    <e>true</e>  
  7.    <e>  
  8.       <id>42</id>  
  9.    </e>  
  10.    <e>  
  11.       <e>1</e>  
  12.       <e>2</e>  
  13.       <e>3</e>  
  14.    </e>  
  15. </a>  
<?xml version="1.0" encoding="UTF-8"?> <a> <e>JSON</e> <e>1</e> <e>2.0</e> <e>true</e> <e> <id>42</id> </e> <e> <e>1</e> <e>2</e> <e>3</e> </e> </a> [ Index| From JSON to XML]

JSONArray to XML (with json prefix)

  1. String str = "['JSON', 1, 2.0, true, {'id':42}, [1,2,3]]";   
  2. JSON json = JSONSerializer.toJSON( str );   
  3. XMLSerializer xmlSerializer = new XMLSerializer();   
  4. xmlSerializer.setTypeHintsCompatibility( false );   
  5. String xml = xmlSerializer.write( json );   
  6. System.out.println(xml);   
String str = "['JSON', 1, 2.0, true, {'id':42}, [1,2,3]]"; JSON json = JSONSerializer.toJSON( str ); XMLSerializer xmlSerializer = new XMLSerializer(); xmlSerializer.setTypeHintsCompatibility( false ); String xml = xmlSerializer.write( json ); System.out.println(xml);
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <a>  
  3.    <e json_type="string">JSON</e>  
  4.    <e json_type="number">1</e>  
  5.    <e json_type="number">2.0</e>  
  6.    <e json_type="boolean">true</e>  
  7.    <e json_class="object">  
  8.       <id json_type="number">42</id>  
  9.    </e>  
  10.    <e json_class="array">  
  11.       <e json_type="number">1</e>  
  12.       <e json_type="number">2</e>  
  13.       <e json_type="number">3</e>  
  14.    </e>  
  15. </a>  
<?xml version="1.0" encoding="UTF-8"?> <a> <e json_type="string">JSON</e> <e json_type="number">1</e> <e json_type="number">2.0</e> <e json_type="boolean">true</e> <e json_class="object"> <id json_type="number">42</id> </e> <e json_class="array"> <e json_type="number">1</e> <e json_type="number">2</e> <e json_type="number">3</e> </e> </a> [ Index| From JSON to XML]

Flatten JSONArray into parent

  1. String str = "{'number': [1,2,3]}";   
  2. JSONObject json = (JSONObject) JSONSerializer.toJSON( str );   
  3. XMLSerializer xmlSerializer = new XMLSerializer();   
  4. xmlSerializer.setTypeHintsEnabled( false );   
  5. String xml = xmlSerializer.write( json );   
  6. System.out.println( xml );   
  7. json.getJSONArray( "number" ).setExpandElements( true );   
  8. xml = xmlSerializer.write( json );   
  9. System.out.println( xml );   
String str = "{'number': [1,2,3]}"; JSONObject json = (JSONObject) JSONSerializer.toJSON( str ); XMLSerializer xmlSerializer = new XMLSerializer(); xmlSerializer.setTypeHintsEnabled( false ); String xml = xmlSerializer.write( json ); System.out.println( xml ); json.getJSONArray( "number" ).setExpandElements( true ); xml = xmlSerializer.write( json ); System.out.println( xml );
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <o>  
  3.    <number>  
  4.       <e>1</e>  
  5.       <e>2</e>  
  6.       <e>3</e>  
  7.    </number>  
  8. </o>  
  9.   
  10. <?xml version="1.0" encoding="UTF-8"?>  
  11. <o>  
  12.    <number>1</number>  
  13.    <number>2</number>  
  14.    <number>3</number>  
  15. </o>  
<?xml version="1.0" encoding="UTF-8"?> <o> <number> <e>1</e> <e>2</e> <e>3</e> </number> </o> <?xml version="1.0" encoding="UTF-8"?> <o> <number>1</number> <number>2</number> <number>3</number> </o> [ Index| From JSON to XML]

From XML to JSON

XML to JSONObject

  1. <o number="1">  
  2.    first   
  3.    <string>json</string>  
  4.    <array>  
  5.       <e>1</e>  
  6.       <e>true</e>  
  7.    </array>  
  8. </o>  
<o number="1"> first <string>json</string> <array> <e>1</e> <e>true</e> </array> </o>
  1. String xml = ...   
  2. XMLSerializer xmlSerializer = new XMLSerializer();   
  3. JSON json = xmlSerializer.read( xml );   
  4. System.out.println( json.toString(2) );   
String xml = ... XMLSerializer xmlSerializer = new XMLSerializer(); JSON json = xmlSerializer.read( xml ); System.out.println( json.toString(2) );
  1. {   
  2.   "string""json",   
  3.   "#text""first",   
  4.   "array":   [   
  5.     "1",   
  6.     "true"  
  7.   ],   
  8.   "@number""1"  
  9. }   
{ "string": "json", "#text": "first", "array": [ "1", "true" ], "@number": "1" } [ Index| From XML to JSON]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值