Преобразовать Xml-ответ вызова API в json - PullRequest
0 голосов
/ 28 сентября 2018

Я вызываю внешний API, который возвращает мне XML-ответ, но я хочу преобразовать его в json, чтобы его мог использовать веб-интерфейс.

Я пытался установить заголовок запроса на application / json, но, похоже, API возвращает только XML.

Ответы [ 3 ]

0 голосов
/ 05 октября 2018

Я открыл библиотеку под названием unXml , которая позволяет вам создавать синтаксический анализатор, который использует xml и производит Джексона json ObjectNodes или ArrayNodes.

Доступно здесь: 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"
}
0 голосов
/ 28 июля 2019

Попробуйте, это у меня сработало,

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

  $response=simplexml_load_string($response);
0 голосов
/ 28 сентября 2018

Здесь вы найдете ответы на подобные вопросы - convert-xml-to-json
Попробуйте

import org.json.XML;

и затем используйте

JSONObject jsonObject = XML.toJSONObject("<XMLStringValue>");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...