我无法将整数值转换为字符串

时间:2013-09-07 10:05:12

标签: java json hibernate classcastexception

 Query query = s.createQuery("from ClientList");

 List <String> results = query.list();
 Iterator<String> it = results.iterator();
 while(it.hasNext())
 {
     Object[] row = (Object[]) it.next();

     System.out.println("ReturnValues==========" + results);

     Map<String, String> jsonObject = new HashMap<String, String>();
     jsonObject.put("Record_Id", (String) row[0]);
     jsonObject.put("Client_Code", (String)row[1]);
     jsonObject.put("Client_Description", (String)row[2]);

     returnValues.add(jsonObject);
}

我的表的第一列包含一个整数值。我收到此错误消息:

Exception===java.lang.ClassCastException:  cannot be cast to [Ljava.lang.Object;

3 个答案:

答案 0 :(得分:1)

你的itetator返回一个字符串。您无法将其强制转换为对象数组。

字符串中有一个split方法,它按给定的正则表达式拆分字符串,并返回包含拆分部分的String[]


由于您没有提供更多相关信息,我将假设您的行中的数据用空格分隔。

String row = ll.next() // I assume row = "1234 5678 Description_No_Spaces"
String[] data = row.split("\\s+");

String record_Id = data[0];

答案 1 :(得分:1)

您不需要迭代器,可以使用foreach循环遍历results

List <String> results =query.list();
for(String result: results) {
   String[] row = /* user result.split(...)  to get attributes*/

 System.out.println("ReturnValues=========="+results);
 Map<String, String> JSonObject=new HashMap<String, String>();
 JSonObject.put("Record_Id", row[0]);
 JSonObject.put("Client_Code", row[1]);
 JSonObject.put("Client_Description",row[2]);
 ReturnValues.add(JSonObject);

}

查看String.split(String regex)文档。

答案 2 :(得分:0)

Query query = s.createQuery("from ClientList");

 List <String> results = query.list();
 Iterator<String> it = results.iterator();
     while(it.hasNext())`enter code here`
 {
     Object[] row = (Object[]) it.next();

     System.out.println("ReturnValues==========" + results);

     Map<String, String> jsonObject = new HashMap<String, String>();
     jsonObject.put("Record_Id", String.valueOf(row[0]));
     jsonObject.put("Client_Code", row[1]);
     jsonObject.put("Client_Description", row[2]);

     returnValues.add(jsonObject);
}

希望这能解决您的问题