在解析JSONString(assigned=[util]时。TaskAudit@24c7b944]}
)如下所示:
Map<String, List<TaskAudit>> auditTrailMap = new HashMap<>();
ObjectMapper mapper = new ObjectMapper();
mapper.configure(Feature.ALLOW_UNQUOTED_FIELD_NAMES, true);
try {
auditTrailMap = mapper.readValue(strObject, new TypeReference<Map<String, List<TaskAudit>>>(){});
} catch (IOException e) {
log.error("{}", e);
}
我得到以下例外:
通用域名格式。fasterxml。杰克逊。果心JsonParseException:意外字符('='(代码61)):在[Source:{assigned=[util]处,需要用冒号分隔字段名和值[junit]。TaskAudit@24c7b944]}; 第1行第11列]
有人能告诉我怎么解决吗。
编辑:这个函数的输入基本上是来自数据库的字符串字段。在保存时,我们会这样保存:
Map<String, List<TaskAudit>> auditTrailMap = new HashMap<>();
auditTrailMap.put("assigned", taskAuditList);
String jsonString = new JSONObject(auditTrailMap).toString();
但是在试图解析jsonString时,它就像(分配=[util.TaskAudit@24c7b944]}),我不知道'='来自哪里以及如何解析它。
ObjectMapper om=new ObjectMapper();
om.configure(com.fasterxml.jackson.core.JsonParser.Feature.ALLOW_UNQUOTED_FIELD_NAMES, true);
List<RootMember> outputList;
try {
ObjectMapper mapper = new ObjectMapper();
String json = mapper.writeValueAsString(resp);
outputList = om.readValue(json, new TypeReference<List<RootMember>>(){});
} catch (JsonMappingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (JsonProcessingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
有人能告诉我怎么解决吗。
你已经有了
{assigned=[util.TaskAudit@24c7b944]}
不是有效的JSON字符串。
toString()
Map方法不需要返回JSON表示,因此您必须自己将其序列化为JSON,如下面的回答所示:
Map<String,String> payload = new HashMap<>();
payload.put("key1","value1");
payload.put("key2","value2");
// right way to convert map to JSON:
String json = new ObjectMapper().writeValueAsString(payload);
根据您的需要调整以上代码,可能需要重用ObjectMapper
实例。
在采用新技术之前,请先阅读文档和示例,这将在未来为您节省大量时间,因为它们通常会突出人们使用图书馆的最常见案例。
您的方法的问题是“您试图以错误的方式将地图解析为JSON。”
您需要使用ObjectMapper将地图解析为JSON字符串。一旦这样做了,就应该能够根据映射中存在的键和值获得所需的正确JSON字符串。
Map<String, List<TaskAudit>> auditTrailMap = new HashMap<>();
auditTrailMap.put("assigned", taskAuditList);
String jsonString = new ObjectMapper().writeValueAsString(auditTrailMap);
一旦你这样做,你将得到正确的JSON:{"分配":"你在地图中设置的键的相应值"}
希望这有助于您的预期需求。
}如果您运行该代码,您会发现它工作得很好。那么问题出在哪里?我必须在Oracle NoSQL数据库上执行同样的操作。了解与数据检索相关的任何部分并不重要,因为它们工作得很好,我已经测试过它们。代码非常相似: 我的目标是获得与第一段代码完全相同的结果。根据我的类tweet的属性,由''分隔的值字符串。 但是,这段代码被压缩在一个Jar文件中,并由数据库在记录的所有tweet上运行。我无法看到发生了什
我在数据库中有一个Json字符串,但在Java对象中转换时,它给出了以下错误:
嘿,我遇到了一个关于与jackson反序列化的问题,这里是我尝试过的和我得到的错误。 错误:com。fasterxml。杰克逊。果心JsonParseException:意外字符('}'(代码125)):应以双引号开始字段名 Java代码 我的JSON
问题内容: 由于某种原因,我收到一条错误消息,但是实际上并没有在读取的任何代码中加下划线。我尝试清洁和重建它,但是没有用。它说它在第49行。 我的代码如下 下面的第49行 问题答案: 你内有两个“奇数”字- U + 200C (零宽不连字)和U + 200B (零宽度的空间)的第一个“e”和“m”个之间。“ l”和“ i”之间的“点击”中出现相同的字符。 只需删除并重新输入这些单词,错误就会消失。
问题内容: 在尝试进入sql查询数组并获得以下javascript错误后,我尝试通过php jquery传递json。 返回sql结果的函数: 以这种方式使用此功能后, 而javascript代码是这样的: 如何纠正此错误以及如何从jquery读取json? 问题答案: 您不需要调用,因为jQuery自动执行该调用,因为如果未指定属性,则jQuery会尝试猜测它并调用正确的函数来解析响应,然后再将
com.sun.jersey.spi.container.containerresponse mapMappableContainerException严重:MappableContainerException中包含的异常无法映射到响应,重新抛出到HTTP容器org.codehaus.jackson.JsonParseException:意外字符(“b”(代码98)):在[source:java.