Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 对象的JSON数组导致HierarchycalStreamReader在解组期间读取空值或空值_Java_Json_Deserialization_Xstream - Fatal编程技术网

Java 对象的JSON数组导致HierarchycalStreamReader在解组期间读取空值或空值

Java 对象的JSON数组导致HierarchycalStreamReader在解组期间读取空值或空值,java,json,deserialization,xstream,Java,Json,Deserialization,Xstream,我正在尝试使用XStream反序列化JSON字符串。我已经编写了反序列化代码,但不知何故,XStreamn为输出发出空/空值,尽管原始JSON字段有值 private静态字符串JSON=“{\n” +“\”实体\“:{\n” +“\“entityType\”:\“User\”,\n” +“entityId\:\“0-1\,\n” +“\“aclRead\”:[\n” +“{\n” +“\“entityId\”:\“2-1\”\n” +},\n +“{\n” +“\“entityId\”:\“2-

我正在尝试使用XStream反序列化JSON字符串。我已经编写了反序列化代码,但不知何故,XStreamn为输出发出空/空值,尽管原始JSON字段有值

private静态字符串JSON=“{\n”
+“\”实体\“:{\n”
+“\“entityType\”:\“User\”,\n”
+“entityId\:\“0-1\,\n”
+“\“aclRead\”:[\n”
+“{\n”
+“\“entityId\”:\“2-1\”\n”
+},\n
+“{\n”
+“\“entityId\”:\“2-2\”\n”
+},\n
+“{\n”
+“\“entityId\”:\“2-3\”\n”
+“}\n”
+“],\n”
+“\“aclWrite\”:[\n”
+“{\n”
+“\“entityId\”:\“1-1\”\n”
+},\n
+“{\n”
+“\“entityId\”:\“1-2\”\n”
+},\n
+“{\n”
+“\“entityId\”:\“1-3\”\n”
+“}\n”
+“],\n”
+“\“blobNames\”:[\n”
+“图片”,\n
+“\”附件\“\n”
+“],\n”
+“\“收藏夹\”:[\n”
+“\'cow\”,\n”
+“\'goat\”,\n”
+“\“鸡肉\”\n”
+“],\n”
+“平均值”:95.5\n
+“\”分数\:[\n”
+“[\n”
+“国际象棋”,\n
+“1\n”
+“],\n”
+“[\n”
+“\'go\”,\n”
+“0.25\n”
+“],\n”
+“[\n”
+“\“domino\”,\n”
+“0.5\n”
+“]\n”
+“],\n”
+“昵称”:“斯科特”,\n
+“出生日期:”2020-12-08 12:37:31.696 UTC\,\n
+“\“年龄\”:40\n”
+“}\n”
+ "}";
和(正在)使用此代码反序列化:

public T反序列化(字符串json,类tClass){
if(Objects.isNull(json)){
返回null;
}
XStream XStream=newxstream(new-JettisonMappedXmlDriver());
processAnnotations(tClass);
//xstream.ignoreUnknowneElements();
xstream.registerConverter(
新的EntityConverter(xstream.getMapper(),xstream.getReflectionProvider());
T model=(T)xstream.fromXML(json);
收益模型;
}
和一个转换器,具有:

@覆盖公共对象解组(HierarchycalStreamReader阅读器,解组上下文){
EntityDTO实体=新的EntityDTO();
while(reader.hasMoreChildren()){
reader.moveDown();
System.out.println(“=============================================================”);
System.out.println(“节点名:+reader.getNodeName());
System.out.println(“值:+reader.getValue());
System.out.println(“=============================================================”);
//convertOther(实体,String.class);
reader.moveUp();
}
返回实体;
}
产出:

===================================
Node Name : entityType
Value     : User
===================================
===================================
Node Name : entityId
Value     : 0-1
===================================
===================================
Node Name : aclRead
Value     : 
===================================
===================================
Node Name : aclRead
Value     : 
===================================
===================================
Node Name : aclRead
Value     : 
===================================
===================================
Node Name : aclWrite
Value     : 
===================================
===================================
Node Name : aclWrite
Value     : 
===================================
===================================
Node Name : aclWrite
Value     : 
===================================
===================================
Node Name : blobNames
Value     : picture
===================================
===================================
Node Name : blobNames
Value     : attachment
===================================
===================================
Node Name : favorites
Value     : cow
===================================
===================================
Node Name : favorites
Value     : goat
===================================
===================================
Node Name : favorites
Value     : chicken
===================================
===================================
Node Name : average
Value     : 95.5
===================================
===================================
Node Name : scores
Value     : chess
===================================
===================================
Node Name : scores
Value     : 1
===================================
===================================
Node Name : scores
Value     : go
===================================
===================================
Node Name : scores
Value     : 0.25
===================================
===================================
Node Name : scores
Value     : domino
===================================
===================================
Node Name : scores
Value     : 0.5
===================================
===================================
Node Name : nickname
Value     : Scott
===================================
===================================
Node Name : birthDate
Value     : 2020-12-08 12:37:31.696 UTC
===================================
===================================
Node Name : age
Value     : 40
===================================
如图所示,
aclRead
aclWrite
为空或null,但原始JSON显然包含值。 XStream的代码或配置可能有什么问题