【问题标题】:Convert JSON into XML using Java使用 Java 将 JSON 转换为 XML
【发布时间】:2016-07-17 08:44:30
【问题描述】:

我正在尝试将 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);

  }

}

【问题讨论】:

  • 那么对于初学者来说,当你定义你的字符串时,你错过了一个开头 ",除非这只是一个错字
  • 您的json 字符串有问题。在你的 String 的最后再放一个 Closing Curlibraces。
  • @VikrantKashyap 谢谢。我解压了 jar 文件 java-json jar,然后使用 New External Jar 就可以了。
  • @GordonAllocman 谢谢
  • 使用 maven/gradle 等构建工具来构建您的项目。

标签: java json xml


【解决方案1】:

您的申请没问题。您需要有一个格式良好的 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 文件,现在它可以工作了。
  • 但我没有得到正确格式的输出.... 生成的响应:421JSONtrue2.0123
【解决方案2】:

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

如果你使用的是 maven 试试:

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

或者从this maven repo 下载jar 并添加到您的库中。

【讨论】:

    【解决方案3】:

    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>
    

    【讨论】:

      猜你喜欢
      • 2015-04-11
      • 2019-10-20
      • 1970-01-01
      • 2020-09-23
      • 1970-01-01
      • 2014-08-02
      • 2013-11-27
      • 2013-06-01
      相关资源
      最近更新 更多