gpt4 book ai didi

java - 使用 Java [-Jackson-] 处理 JSON。无法反序列化

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:09:49 25 4
gpt4 key购买 nike

我有一个 JSON 字符串:

"[{\"is_translator\":false,\"follow_request_sent\":false,\"statuses_count\":1058}]"

在字符串上使用 PHP 的 json_decode() 并执行 print_r,输出:

Array
(
[0] => stdClass Object
(
[is_translator] =>
[follow_request_sent] =>
[statuses_count] => 1058
)

)

这表明它是有效的 JSON。

但是使用 Jackson 库会出错:

Exception in thread "main" org.codehaus.jackson.map.JsonMappingException: Can not deserialize instance of java.util.LinkedHashMap out of START_ARRAY token at [Source: java.io.StringReader@a761fe; line: 1, column: 1]

这是简单的代码:

import java.io.IOException;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Map;
import org.codehaus.jackson.map.ObjectMapper;
import org.codehaus.jackson.type.TypeReference;

public class tests {
public static void main(String [] args) throws IOException{
ObjectMapper mapper = new ObjectMapper();
Map<String, Object> fwers = mapper.readValue("[{\"is_translator\":false,\"follow_request_sent\":false,\"statuses_count\":1058}]", new TypeReference <Map<String, Object>>() {});
System.out.println(fwers.get("statuses_count"));

}
}

谁能告诉我哪里出了问题以及解决方案?

谢谢。

最佳答案

"[{}]"是一个散列列表,您正在尝试序列化为一个散列。请尝试以下操作。

List<Map<String, Object>> fwers = mapper.readValue(yourString, new TypeReference<List<Map<String, Object>>>() {})

关于java - 使用 Java [-Jackson-] 处理 JSON。无法反序列化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8387453/

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