String jpql = "SELECT u FROM User u WHERE u.name = :name";
Query query = em.createQuery(jpql);
List users = query.getResultList();
怎么得到每个list中的User
用json是最好的,当然也可以使用user的序列化,只是java的序列化相对来说要慢一点,而且可移植性不高。
json出错可能是你的json格式有问题,如果不想用工具,最好是重写user的tostring方法,
在tostring中把每个user组成json对象,这时候调用list的tostring方法,得到的将是一个标准的json。
json出错有时候可能是因为错误的进行了序列化(转移特殊字符如")。
//查询结果转JSon
public String resultSetToJson(ResultSet rs) throws SQLException,JSONException
{
// json数组
JSONArray array = new JSONArray();
// 获取列数
ResultSetMetaData metaData = rs.getMetaData();
int columnCount = metaData.getColumnCount();
// 遍历ResultSet中的每条数据
while (rs.next()) {
JSONObject jsonObj = new JSONObject();
String id = rs.getInt("id")+"";
jsonObj.put("id", id);
// 遍历每一列
for (int i = 2; i <= columnCount; i++) {
String columnName =metaData.getColumnLabel(i);
String value = rs.getString(columnName);
if (value!=null) {
jsonObj.put(columnName, value);
} else {
jsonObj.put(columnName, "");
}
}
array.put(jsonObj);
}
return array.toString();
}
}
我这么写的,好像可以用
可以用webservice,也可以用json,不过json方便,webservice也还行,解析起来也方便,我有webservice解析工具类,一行代码全搞定!要的话联系我