在java中解析json时,无法将java.util.Vector转换为java.util.ArrayList错误

在java中解析json时,无法将java.util.Vector转换为java.util.ArrayList错误,java,json,codeigniter,codenameone,Java,Json,Codeigniter,Codenameone,我想使用arraylist而不是vector,因为arraylist提供了更好的性能等。但是代码也使用vector。我不明白当我使用json_编码时,有时它可以在arraylist中解析,有时可以在vector中解析。将json解析值转换为vector和arraylist有什么区别?是来自模型/控制器(这里使用的CI)还是我必须在JavaJSON解析器中执行不同的smth 编码点火器控制器: $data = $this->member->view_members(); header(

我想使用arraylist而不是vector,因为arraylist提供了更好的性能等。但是代码也使用vector。我不明白当我使用json_编码时,有时它可以在arraylist中解析,有时可以在vector中解析。将json解析值转换为vector和arraylist有什么区别?是来自模型/控制器(这里使用的CI)还是我必须在JavaJSON解析器中执行不同的smth

编码点火器控制器:

$data = $this->member->view_members();
header('Content-Type: application/json');
echo json_encode($data);
CI模型:

$queries = $this->db->get('members');
return $queries->result();
json:

java json解析错误消息:java.util.Vector无法转换为java.util.ArrayList

ConnectionRequest connectionRequest = new ConnectionRequest() {    
    @Override
    protected void readResponse(InputStream input) throws IOException {
        JSONParser jSONParser = new JSONParser();
        Map<String,Object> parsedData = jSONParser.parse(new InputStreamReader(input));
        response = (ArrayList) parsedData.get("root"); //error msg: java.util.Vector cannot be cast to java.util.ArrayList
    }   
    .........
}
ConnectionRequest ConnectionRequest=new ConnectionRequest(){
@凌驾
受保护的void readResponse(InputStream输入)引发IOException{
JSONParser JSONParser=新的JSONParser();
Map parsedData=jSONParser.parse(新的InputStreamReader(input));
response=(ArrayList)parsedData.get(“root”);//错误消息:java.util.Vector无法转换为java.util.ArrayList
}   
.........
}

是旧的解析方法(注意在javadocs中不推荐使用),它使用哈希表和向量

你需要使用

jSONParser.parseJSON(new InputStreamReader(input));

它使用HashMap和ArrayList,这是一个向量,这两种类型不相关。生成
响应
一个
向量
,或者将其内容复制到
ArrayList
中。或者更好的方法是,使用Jackson或Gson完全解析它。@Andy Turner我已经提到过,我可以生成响应向量并工作,但有时我可以直接在ArrayList中工作。这就是为什么我问我是否可以在这里做smth?@beck,那么做我建议的另一件事。
new ArrayList(someVector)
将使用
someVector
中的相同元素创建一个新的
ArrayList
。除非您知道使用
Vector
会因为其方法被同步而给您带来性能问题,否则我不会为此费心。然而,我强烈怀疑情况是否如此。
jSONParser.parse(new InputStreamReader(input));
jSONParser.parseJSON(new InputStreamReader(input));