Как конвертировать произвольный JSON в XML с использованием BaseX? - PullRequest
0 голосов
/ 01 февраля 2020

Как произвольно JSON преобразовать в произвольно XML, используя BaseX?

Я смотрю на JsonParser из BaseX для этой спецификации c решение.

В этом случае у меня есть твиты с использованием Twitter4J:

package twitterBaseX;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Properties;
import java.util.logging.Logger;
import main.LoadProps;
import org.basex.core.BaseXException;
import twitter4j.JSONException;
import twitter4j.JSONObject;
import twitter4j.Query;
import twitter4j.QueryResult;
import twitter4j.Status;
import twitter4j.Twitter;
import twitter4j.TwitterException;
import twitter4j.TwitterFactory;
import twitter4j.TwitterObjectFactory;
import twitter4j.conf.ConfigurationBuilder;

public class TwitterOps {

    private static final Logger log = Logger.getLogger(TwitterOps.class.getName());

    public TwitterOps() {
    }

    private TwitterFactory configTwitterFactory() throws IOException {
        LoadProps loadTwitterProps = new LoadProps("twitter");
        Properties properties = loadTwitterProps.loadProperties();
        log.fine(properties.toString());
        ConfigurationBuilder configurationBuilder = new ConfigurationBuilder();

        configurationBuilder.setDebugEnabled(true)
                .setJSONStoreEnabled(true)
                .setOAuthConsumerKey(properties.getProperty("oAuthConsumerKey"))
                .setOAuthConsumerSecret(properties.getProperty("oAuthConsumerSecret"))
                .setOAuthAccessToken(properties.getProperty("oAuthAccessToken"))
                .setOAuthAccessTokenSecret(properties.getProperty("oAuthAccessTokenSecret"));

        return new TwitterFactory(configurationBuilder.build());
    }

    public List<JSONObject> getTweets() throws TwitterException, IOException, JSONException {
        Twitter twitter = configTwitterFactory().getInstance();

        Query query = new Query("lizardbill");
        QueryResult result = twitter.search(query);
        String string = null;
        JSONObject tweet = null;
        List<JSONObject> tweets = new ArrayList<>();

        for (Status status : result.getTweets()) {
            tweet = jsonOps(status);
            tweets.add(tweet);
        }
        return tweets;
    }

    private JSONObject jsonOps(Status status) throws JSONException, BaseXException {
        String string = TwitterObjectFactory.getRawJSON(status);
        JSONObject json = new JSONObject(string);
        String language = json.getString("lang");
        log.fine(language);
        return json;
    }

}

JSONObject из Twitter4J невозможно просто застрять в XML?

Есть несколько онлайн-конвертеров , которые нацелены на достижение sh этого и которые, по крайней мере на первый взгляд, кажутся вполне адекватными.

см. Также:

Преобразование JSON в XML в Java

Java реализация JSON в XML преобразование

1 Ответ

1 голос
/ 01 февраля 2020

Используйте (отлично) библиотеку JSON - Java из json .org, тогда

JSONObject json = new JSONObject(str);
String xml = XML.toString(json);

toString может принять второй аргумент для предоставления имени XML root узел.

Эта библиотека также может конвертировать XML в JSON, используя XML.toJSONObject(java.lang.String string)

Проверьте Javado c для получения дополнительной информации

...