使用Java将JSON转换为XML

4

我正在尝试将JSON转换为XML。但是出现了一个错误,指出找不到org.json。我还导入了外部jar文件java-json.jar。以下是我的Java代码:

import org.json.JSONObject;
public class JsontoXML{
  public static void main(String args[])
  {
    String str ={'name':'JSON','integer':1,'double':2.0,'boolean':true,'nested' {'id':42},'array':[1,2,3]}"; 
    JSONObject json = new JSONObject(str);
    String xml = XML.toString(json);
    System.out.println(xml);

  }

}


首先,您在定义字符串时缺少一个开头的 " ,除非这只是一个打字错误。 - Gordon Allocman
@VikrantKashyap 谢谢。我解压了 java-json jar 文件,然后使用“新建外部 Jar”功能,它可以正常工作了。 - Rose
@GordonAllocman 谢谢 - Rose
使用构建工具如maven/gradle来构建你的项目。 - Sasi Kathimanda
你是否已将该jar包添加到应用程序的构建路径中? - abhaybhatia
显示剩余3条评论
3个回答

5
你的应用程序不错。你需要有一个格式良好的JSON对象。 源代码
package algorithms;

import org.json.JSONObject;
import org.json.XML;
public class JsonToXML{
public static void main(String args[])
{
    JSONObject json = new JSONObject("{name: JSON, integer: 1, double: 2.0, boolean: true, nested: { id: 42 }, array: [1, 2, 3]}");

    String xml = XML.toString(json);
    System.out.println(xml);

  }
}

请参考上面的例子。

输出:

<boolean>true</boolean><array>1</array><array>2</array><array>3</array><double>2.0</double><name>JSON</name><integer>1</integer><nested><id>42</id></nested>

非常感谢。实际上问题是添加外部 jar 文件。我添加了 zip 文件。我解压了外部 jar 文件,现在它可以正常工作了。 - Rose
但是我没有得到正确格式的输出... 生成的响应:<nested><id>42</id></nested><integer>1</integer><name>JSON</name><boolean>true</boolean><double>2.0</double><array>1</array><array>2</array><array>3</array> - Fazz

0

您的问题与jar有关。您需要导入org.json包以使XML方法正常工作。

如果您正在使用Maven,请尝试:

<dependency>
    <groupId>org.json</groupId>
    <artifactId>json</artifactId>
    <version>20140107</version>
</dependency>

或者从这个Maven仓库下载jar包并添加到您的库中。


0

Underscore-java 可以将 JSON 转换为 XML:

String json = "{\"name\":\"JSON\",\"integer\":1,\"double\":2.0,\"boolean\":true,\"nested\": {\"id\":42},"
    + "\"array\":[1,2,3]}";
String xml = U.jsonToXml(json);
System.out.println(xml);

输出:

<?xml version="1.0" encoding="UTF-8"?>
<root>
  <name>JSON</name>
  <integer number="true">1</integer>
  <double number="true">2.0</double>
  <boolean boolean="true">true</boolean>
  <nested>
    <id number="true">42</id>
  </nested>
  <array number="true">1</array>
  <array number="true">2</array>
  <array number="true">3</array>
</root>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接