gpt4 book ai didi

java - 如何解析自定义用户的标签?

转载 作者:行者123 更新时间:2023-12-01 11:36:46 26 4
gpt4 key购买 nike

有注释@ElementMap,它允许将此类标签解析为 map :

<field key="key">value</field>

是否可以将此类标签解析为 map ?:

<key>value</key>

我尝试为我的类编写自定义转换器,但它仍然不允许在 xml 中使用自定义用户的标签。

最佳答案

I tried to write custom converter for my class, but it still does not allow to use custom user's tags in xml.

您能提供更多详细信息吗?

<小时/>

以下是如何实现转换器的示例:

@Root
@Convert(Example.ExampleConverter.class)
public class Example
{
private Map<String, String> map;

// ...

static class ExampleConverter implements Converter<Example>
{
@Override
public Example read(InputNode node) throws Exception
{
Example value = new Example();
value.map = new HashMap<>();

InputNode childNode = node.getNext();

while( childNode != null )
{
value.map.put(childNode.getName(), childNode.getValue());
childNode = node.getNext();
}

return value;
}

@Override
public void write(OutputNode node, Example value) throws Exception
{
for( Entry<String, String> entry : value.map.entrySet() )
{
node.getChild(entry.getKey()).setValue(entry.getValue());
}
}
}
}

使用示例:

Serializer ser = new Persister(new AnnotationStrategy());

final String xml = "<example>\n"
+ " <key1>value1</key1>\n"
+ " <key2>value2</key2>\n"
+ " <key3>value3</key3>\n"
+ "</example>";

Example e = ser.read(Example.class, xml);
System.out.println(e);

输出(取决于toString()-实现:

Example{map={key1=value1, key2=value2, key3=value3}}

关于java - 如何解析自定义用户的标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29895000/

26 4 0