在Rest Service中返回动态Json

时间:2018-10-22 18:28:45

标签: java json rest spring-boot

我正在尝试使用Spring Boot实现一个简单的Restful Web Service。

当前,我想将XML文件解析为Json对象,并将其作为响应消息返回。但是,我目前在定义返回的JSON对象的结构时遇到问题,因为它可能因我解析的XML文件而异。

这是我尝试返回的XML解析为Json的示例。

{
    "App": {
        "CR": {
            "Product": {
                "PRequest": {
                    "MF": "dfl3",
                    "Pri": "0",
                    "PC": "age",
                    "PCode": "Hca"
                }
            }
        },
        "SD": {
            "SDF": {
                "PRP": {
                    "_cCao": "str1234",
                    "_cSao": "str1234",
                    "_dao": "2012-12-13",
                    "_dCao": "2012-12-13",
                    "_dr": "2012-12-13",
                    "_nIDta": "str1234",
                    "_no": "1234"
                }
            }
        }
    }
}

有没有办法返回仅在运行时定义结构的动态Json对象?

1 个答案:

答案 0 :(得分:2)

您可以使用org.json轻松完成此操作:

String xmlString = "<note><to>Bill</to><from>Ben</from><body>Hello!</body></note>";
JSONObject jsonObject = XML.toJSONObject(xmlString);
String jsonString = jsonObject.toString();

// Evaluates to:
// {"note":{"from":"Ben","to":"Bill","body":"Hello!"}}

这会将XML字符串转换为JSONObject,您可以随后对其进行操作或将其转换为JSON字符串。

如果您使用的是Maven,则可以通过将其添加到org.json中来为pom.xml添加依赖项:

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