2 jingtanchenfen70 jingtanchenfen70 于 2016.04.20 14:05 提问

请问下面语句怎么将查询出来的很多users实体对象发给客户端,使用json总是错误,

String jpql = "SELECT u FROM User u WHERE u.name = :name";
Query query = em.createQuery(jpql);
List users = query.getResultList();
怎么得到每个list中的User

3个回答

w172087242
w172087242   Ds   Rxr 2016.04.20 14:15
已采纳

用json是最好的,当然也可以使用user的序列化,只是java的序列化相对来说要慢一点,而且可移植性不高。

json出错可能是你的json格式有问题,如果不想用工具,最好是重写user的tostring方法,
在tostring中把每个user组成json对象,这时候调用list的tostring方法,得到的将是一个标准的json。

json出错有时候可能是因为错误的进行了序列化(转移特殊字符如")。

affeds
affeds   2016.04.20 14:26

//查询结果转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();  
  } 

}
我这么写的,好像可以用

baidu_23086307
baidu_23086307   2016.05.01 23:47

可以用webservice,也可以用json,不过json方便,webservice也还行,解析起来也方便,我有webservice解析工具类,一行代码全搞定!要的话联系我

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
Hibernate查询之SQL查询,查询结果用new新对象的方式接受,hql查询,通过SQL查询的结果返回到一个实体中,查询不同表中内容,并将查到的不同表中的内容放到List中
package com.ucap.netcheck.dao.impl; import java.util.ArrayList; import java.util.List; import org.hibernate.Query; import org.hibernate.Session; import org.hibernate.SessionFactory; import o
hql查询之实体对象查询
一、实体对象查询         实体对象查询是hql查询的基础,作为一种对象查询语言,在查询操作时和sql不同,查询字符串中的内容要使用类名和类的属性名来代替。这种查询方法相对简单,只要有SQL功底,使用hql是很简单的,但是有一些问题需要注意,就是查询获取数据不是目的,需要考虑的是如何编写出高效的查询语句,这才是讨论的重点。  1.1 N+1问题   
Hibernate(HQL/SQL)查询结果(Object)转换为实体类型
1.POJO实体 session.createSQLQuery(queryString.toString()).addEntity(实体.class); 2.普通JavaBean(非HibernatePOJO实体) SQLQuery query = session.createSQLQuery("select vg189.gdname busiType,ob.tel bu
hibernate的sql查询出来封装实体的两种方式
1.在用hibernate的查询数据库时,即可以用hql,也可以用sql语句至于用hql语句查出来的结果可以是一个实体对象 如: public List getAll() { String sql = "from CraGovernment as o"; Query query = sessionFactory.getCurrentSession().createQuery(sql)
hibernate将本地SQL查询结果封装成对象(最终)
使用本地sql语句查询后,无需再使用Object对查询结果进行强制转换,而是直接将查询结果放到实体Bean里了。 PS: 其实只有一版,这里只所以叫最终版是因为该附件我上传了好几天传不上去,到最后报告说‘资源已经存在’,但我确实没有看到附件。所以没办法只能改个名字了…………。(V_V)。
将SQL查询封装成对象查询
现在的项目对于数据层要求越来越高,常常因为很基于hibernate的Criteria 思想
EF-Linq 将实体对象转换为搜索条件以进行通用动态查询
网上找了很久都没找到想要的代码,于是自己写了一份,以作分享。 思路是根据传递进来的对象通过反射来获取对应的属性及属性值,然后再进行比较,接着返回Func对象。 方法主体: /// /// 根据传递的对象生成Func表达式,作为Linq的Where参数 /// /// /// public
hql 查询返回某个实体对象的泛型方法
查询方法: /** * 执行hQL查询 * @param * @param hql * @param cla 返回值实体 * @return 查询结果实体列表第一个元素 * @throws Exception */ //List public static T executeQuery(String hql,Class cla)throws Exception{
JSON C# Class Generator ---由json字符串生成C#实体类的工具
json作为互联网上轻量便捷的数据传输格式,越来越受到重视。但在服务器端编程过程中,我们常常希望能通过智能提示来提高编码效率。JSON C# Class Generator 能将json格式所表示的Javascript对象转化成强类型的C#实体类,来实现减少代码输入的效果。 http://jsonclassgenerator.codeplex.com/  ----开源的winform工具。
实体对象转化为json字符串
之前遇到过的一个问题就是前段请求后台,需要返回一个json格式的字符串,但是我们通常查询返回的是一个实体对象,所以需要将实体对象进行转化,转成json类型的字符串 网上的一种做法是通过反射的方式将实体的字段一个个取出来拼成一个stringBuffer.不断地append上去。但是觉得这种做法感觉很麻烦。现在有另外一种做法,贴上代码 package com.yaoqi.entity; im