gpt4 book ai didi

Java - 使用 XStream 将 XML 转换为 HashMap - CannotResolveClassException : Response

转载 作者:行者123 更新时间:2023-12-02 09:13:55 35 4
gpt4 key购买 nike

我需要转换此 XML:

<?xml version="1.0" encoding="utf-8"?>
<Response xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Status>0</Status>
<Credit>98</Credit>
</Response>

使用 XStream 到 Java HashMap:

XStream xStream = new XStream();
xStream.alias("hashmap", java.util.HashMap.class);
HashMap<String, Object> myHashmap = (HashMap<String, Object>) xStream.fromXML(myXmlAsString);

但是抛出了这个异常:

com.thoughtworks.xstream.mapper.CannotResolveClassException: Response

我的问题是:我在做什么?我在这里浏览过类似的线程,但似乎没有任何帮助。任何建议表示赞赏

最佳答案

我不确定这是否是准确的答案,但让我们尝试一下。

在我看来,错误是试图将 XML 直接映射到 HashMap,而不告诉 XStream 如何执行此操作。

出于这个原因,我建议生成一个反射(reflect) xml 模式的类和一个将第一个类映射到 Map 的第二个类。

例如,我将您的代码放在这个简单的类中:

enter code herepackage com.stackoverflow.test.xstream_xml_to_map;

import java.io.File;

import com.thoughtworks.xstream.XStream;

public class App {

public static void main(String[] args) {
XStream xStream = new XStream();
File f = new File(App.class.getClassLoader().getResource("provided.xml").getFile());
xStream.alias("Response", Response.class);
Response res = (Response) xStream.fromXML(f);
System.out.println("Credit: "+res.getCredit());
System.out.println("Status: "+res.getStatus());
}
}

使用此 Response 类:

package com.stackoverflow.test.xstream_xml_to_map;

import com.thoughtworks.xstream.annotations.XStreamAlias;

@XStreamAlias("Response")
public class Response {

private String Status = new String();

private String Credit = new String();

public String getStatus() {
return Status;
}

public String getCredit() {
return Credit;
}
}

with this output

现在你可以使用res对象来生成你喜欢的HashMap

关于Java - 使用 XStream 将 XML 转换为 HashMap - CannotResolveClassException : Response,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59159375/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com