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

Mob*_*Mob 4 php java json jackson

我有一个JSON字符串:

"[{\"is_translator\":false,\"follow_request_sent\":false,\"statuses_count\":1058}]"
Run Code Online (Sandbox Code Playgroud)

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

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

)
Run Code Online (Sandbox Code Playgroud)

这表明它是有效的JSON.

但是使用Jackson Library会出错:

线程"main"中的异常org.codehaus.jackson.map.JsonMappingException:无法在[来源:java.io.StringReader@a761fe;中的START_ARRAY标记中反序列化java.util.LinkedHashMap的实例.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"));

    }
}
Run Code Online (Sandbox Code Playgroud)

谁能告诉我有什么问题和解决方案?

谢谢.

Ran*_*ggs 6

"[{}]"是一个哈希列表,您正在尝试序列化为哈希.请尝试以下方法.

List<Map<String, Object>> fwers = mapper.readValue(yourString, new TypeReference<List<Map<String, Object>>>() {})
Run Code Online (Sandbox Code Playgroud)