Mis*_*sha 10 java json xstream deserialization
stackoverflow上有很多关于如何使用Gson反序列化json数组的信息.
但是我如何使用XStream
jettison 做同样的事情呢?
这是json:
{"entity":[{"id":"1", "name":"aaa"}, {"id":"2", "name":"bbb"}]}
Run Code Online (Sandbox Code Playgroud)
以下是XStream
我尝试解析它的代码:
XStream xstream = new XStream(new JettisonMappedXmlDriver());
xstream.alias("entity", Entity[].class);
return (Entity[])xstream.fromXML(jsonString);
Run Code Online (Sandbox Code Playgroud)
我有以下例外:
com.thoughtworks.xstream.converters.ConversionException: id : id
Run Code Online (Sandbox Code Playgroud)
使用数组我无法让它运行,但是使用列表:
爪哇:
package de.mosst.spielwiese;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
import org.junit.Test;
import com.thoughtworks.xstream.XStream;
import com.thoughtworks.xstream.annotations.XStreamAlias;
import com.thoughtworks.xstream.io.json.JettisonMappedXmlDriver;
import lombok.Data;
public class XStreamDeserializeJsonWithJettison {
@Test
@SuppressWarnings("unchecked")
public void smokeTest() {
InputStream file = XStreamDeserializeJsonWithJettison.class.getResourceAsStream("XStreamDeserializeJsonWithJettison.json");
XStream xStream = new XStream(new JettisonMappedXmlDriver());
xStream.processAnnotations(Entity.class);
List<Entity> entities = (List<Entity>) xStream.fromXML(file);
System.out.println(entities);
}
@Data
@lombok.AllArgsConstructor
@XStreamAlias("entity")
class Entity {
String id;
String name;
}
}
Run Code Online (Sandbox Code Playgroud)
XML:
{
"list": [
{
"entity": [
{
"id": 1,
"name": "odin"
},
{
"id": 2,
"name": "dwa"
}
]
}
]
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1951 次 |
最近记录: |