我想生成一个对象的ArrayList,使其成为jquery UI Autocomplete的源代码。但是,如果我在条目
中使用其他值,那么我的以下函数就会抛出错误public ArrayList getUserData()
{
ArrayList buffer = new ArrayList();
try{
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/chbs?" + "user=root&password=xxx");
Statement stmt=conn.createStatement();
ResultSet rs = stmt.executeQuery("select * from users");
while(rs.next())
{
buffer.add('"{' + rs.getString("users.Employee_ID") + '"' + rs.getString("users.Employee_Name") + '}"');
}
return buffer;
}
catch (Exception e) {
e.printStackTrace();
}
return buffer;
}
我想要这样的结果
data = [
{
empid:"xyz111",
empName:"Hello"
},
{
empid:"xyz222",
empName:"Hi"
}
];
但是,我正在
data = ["xyz111"Hello","xyz222"Hi"];
答案 0 :(得分:2)
IMO,手动操作/构建JSON并不是一个好主意。相反,您应该使用像Jackson这样的库来完成这项工作。
您获得的只是String
连接List
的{{1}}。现在,为了获得您期望的内容,您需要创建一个POJO类,它将保留empid
和empName
。然后,创建此对象的列表并将其传递给ObjectMapper
。
示例:
ObjectMapper mapper = new ObjectMapper();
List<Employee> empList = new ArrayList<>();
while(rs.next())
{
Employee emp = new Employee();
emp.setEmpId(Integer.parseInt(rs.getString("users.Employee_ID")));
emp.setEmpName(rs.getString("users.Employee_Name"));
empList.add(emp);
}
//Object to JSON in String
String jsonInString = mapper.writeValueAsString(empList);