将Api调用的Xml响应转换为json

时间:2018-09-28 09:47:28

标签: java json xml parsing

我正在调用一个外部API,该API返回我的XML响应,但我想将其转换为json,以便前端可以使用它。

我尝试将请求标头设置为application / json,但似乎API仅返回XML。

3 个答案:

答案 0 :(得分:0)

在这里回答类似的问题-convert-xml-to-json
试试

import org.json.XML;

然后使用

JSONObject jsonObject = XML.toJSONObject("<XMLStringValue>");

答案 1 :(得分:0)

我已经开源了一个名为unXml的库,该库可让您创建一个使用xml的解析器,并生成Jackson json ObjectNodesArrayNodes

它在Maven Central上可用。

示例:

输入xml:

<root>
  <id>1</id>
  <title>mytitle</title>
</root>

用Java创建解析器:

import com.nerdforge.unxml.Parsing;
import com.nerdforge.unxml.factory.ParsingFactory;
...

public class MyController {
    public ObjectNode getJsonFromXml(String inputXmlString) {
        Parsing parsing = ParsingFactory.getInstance().create();
        Document document = parsing.xml().document(inputXmlString);

        Parser<ObjectNode> parser = parsing.obj("root")
            .attribute("id", "id", parsing.number())
            .attribute("title")
            .build();

        ObjectNode node = parser.apply(document);
        return node;
    }
}

给出以下json结果:

{
  "id":1,
  "title":"mytitle"
}

答案 2 :(得分:-1)

尝试使用此IT服务对我来说有用

  header('Content-Type: application/xml');

  $response=simplexml_load_string($response);