Java 如何使用Jackson xml解析器,我有一个错误
我如何使用Jackson:Java 如何使用Jackson xml解析器,我有一个错误,java,android,xml,Java,Android,Xml,我如何使用Jackson: public class XmlJacksonParser { URL url; public void test() throws IOException { try { url = new URL("https://www.onliner.by/feed"); } catch (MalformedURLException e) { e.printStackT
public class XmlJacksonParser {
URL url;
public void test() throws IOException {
try {
url = new URL("https://www.onliner.by/feed");
} catch (MalformedURLException e) {
e.printStackTrace();
}
JacksonXmlModule module = new JacksonXmlModule();
module.setDefaultUseWrapper(false);
XmlMapper xmlMapper = new XmlMapper(module);
OpenCredentials openCredentials = xmlMapper.readValue(url, OpenCredentials.class);
xmlMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
Log.e("LogTas", "getItemsSize: " + openCredentials.getCredentials().toString());
System.out.println(openCredentials);
}
@JacksonXmlRootElement(localName = "channel")
class OpenCredentials {
@JacksonXmlProperty(localName = "item")
@JacksonXmlElementWrapper(useWrapping = false)
private Credentials[] credentials;
public Credentials[] getCredentials() {
return credentials;
}
public void setCredentials(Credentials[] credentials) {
this.credentials = credentials;
}
//getters, setters, toString
}
class Credentials {
@JacksonXmlProperty(isAttribute = true)
private String priv;
@JacksonXmlProperty(isAttribute = true)
private String type;
private String user;
@JacksonXmlProperty(localName = "title")
private String clientToken;
@JacksonXmlProperty(localName = "description")
private String clientSecret;
}
}
打电话
XmlJacksonParser s = new XmlJacksonParser();
try {
s.test();
} catch (IOException e) {
e.printStackTrace();
}
edu.usf.cutr.javax.xml.stream.FactoryConfigurationError:找不到提供程序com.bea.xml.stream.MXParserFactory
位于edu.usf.cutr.javax.xml.stream.FactoryFinder.newInstance(FactoryFinder.java:72)
位于edu.usf.cutr.javax.xml.stream.FactoryFinder.find(FactoryFinder.java:176)
位于edu.usf.cutr.javax.xml.stream.FactoryFinder.find(FactoryFinder.java:92)
位于edu.usf.cutr.javax.xml.stream.XMLInputFactory.newInstance(XMLInputFactory.java:136)
位于com.fasterxml.jackson.dataformat.xml.XmlFactory.(XmlFactory.java:97)
位于com.fasterxml.jackson.dataformat.xml.XmlFactory.(XmlFactory.java:85)
位于com.fasterxml.jackson.dataformat.xml.XmlFactory.(XmlFactory.java:82)
位于com.fasterxml.jackson.dataformat.xml.XmlMapper。(XmlMapper.java:46)
位于com.example.onexeor.rssreader.XmlJacksonParser.qweqwe(XmlJacksonParser.java:29)
位于com.example.onexeor.rssreader.MainReader.onCreate(MainReader.java:74)
位于android.app.Activity.performCreate(Activity.java:5977)
位于android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1111)
在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2415)上
位于android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2524)
在android.app.ActivityThread.access$800(ActivityThread.java:167)
在android.app.ActivityThread$H.handleMessage(ActivityThread.java:1419)上
位于android.os.Handler.dispatchMessage(Handler.java:111)
位于android.os.Looper.loop(Looper.java:194)
位于android.app.ActivityThread.main(ActivityThread.java:5546)
位于java.lang.reflect.Method.invoke(本机方法)
位于java.lang.reflect.Method.invoke(Method.java:372)
在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:964)上
位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:759)
雷加德·杰克逊酒店
compile 'com.fasterxml.jackson.core:jackson-core:2.1.2'
compile 'com.fasterxml.jackson.core:jackson-annotations:2.1.2'
compile 'com.fasterxml.jackson.core:jackson-databind:2.1.2'
// Repackaged XML-specific libraries
compile 'edu.usf.cutr.android.xml:jackson-dataformat-xml-android:2.1.2'
compile 'edu.usf.cutr.android.xml:stax2-api-android:3.1.1'
compile 'edu.usf.cutr.android.xml:stax-api-android:1.0-2'
compile 'edu.usf.cutr.android.xml:aalto-xml-android:0.9.8'
显示build.gradle中的依赖项我也遇到了相同的错误,但无法修复,并决定在Android中不使用Jackson XML解析。有一些步骤可以解决这个问题,你可以尝试-我做了,但没有工作,现在我使用了一个改装