当使用Java时只有一个对象可用时,将XML转换为JSON数组

当使用Java时只有一个对象可用时,将XML转换为JSON数组,java,arrays,json,xml,org.json,Java,Arrays,Json,Xml,Org.json,使用下面的Java代码(使用org.JSON API)将XML转换为JSON,但如果只有一个对象可用,我不会得到JSON数组 注意-如果有多个对象可用,我将获得预期的数组 Java代码: import org.json.JSONObject; import org.json.XML; public class Convert { public static void main(String[] args) { String xmlString = "<?xml version

使用下面的Java代码(使用org.JSON API)将XML转换为JSON,但如果只有一个对象可用,我不会得到JSON数组

注意-如果有多个对象可用,我将获得预期的数组

Java代码:

import org.json.JSONObject;
import org.json.XML;

public class Convert {

public static void main(String[] args) {

    String xmlString = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" +
        "<School >" +
        "<Class>II-B</Class>" +
        "</School>";

    try {
        JSONObject jsonObj = XML.toJSONObject(xmlString);

        String json = jsonObj.toString(4);

        System.out.println(json);

    } catch (Exception e) {
        // TODO: handle exception
    }

}

}
我需要数组而不是对象,如下所示-

预期的JSON:

{ "School": {"Class": ["II-B"] }}

有什么方法可以实现这一点吗?

没有,因为转换器无法知道XML的语义(也就是说,可能有多个类,但在这种情况下,只有一个类)

恐怕我的经验是,XML和JSON之间的通用转换器毫无用处。为了产生可用的输出,您总是需要考虑数据模型的语义进行一些预处理或后处理

这就是为什么XSLT 3.0不尝试通用转换,而是为您提供了实现自定义转换的工具。

您可以使用流解析库。它可以处理JSON和XML。首先,必须以yaml或json格式定义映射

以下是示例XML的映射示例:

result:
  path: /
  type: object
  fields:
    School:
      type: object
      fields:         
        Class: 
          type: array
工作示例在下面的链接中


您的代码看起来像什么?Hi@AhmetOZKESEK-在我的问题中分享了我的代码。下划线-java库可以将xml转换为json。U.xmlToJson(xml)方法将有所帮助。
{ "School": {"Class": ["II-B"] }}
result:
  path: /
  type: object
  fields:
    School:
      type: object
      fields:         
        Class: 
          type: array