很多   的 Gson 也可以 的。 

解决方案 »

  1.   

    首先你要下载一个json-lib的jar包,然后引入。
     String usersJson = JSONArray.fromObject(userlist).toString();//将list集合转换成json字符串
        String userJson = JSONObject.fromObject(user);//将对象转换成json字符串具体对象怎么获取你自己搞一下吧,你应该会。
      

  2.   

    这样的例子我早就看过了,有将对象,字符串,list集合,map集合转换为json格式的,但是现在我是用三大框架做的,我就是不知道流程应该怎样做,这些都是手动的输入一些数据,然后解析的,三大框架操作的是对象,现在就不知道了,怎么解决?
      

  3.   


    看你这意思,你是不知道如何获取对象是吧。你要是用ssh的话,框架都搭好了吗?如过搭好了框架,就是各部分代码的问题了。首先你在hibernate层也就是dao层通过连接数据库得到你要的数据,然后再Service层调用dao层方法得到数据处理数据,在action中将数据转换成json格式转发出去。
      

  4.   

    框架已经搭好了,配置文件已经连接好了数据库,只是需要查询数据库中的一张表,对吧,我是这样做的,public List<Firm> sqlFirm(){
    String hql="from Firm";
    this.getHibernateTemplate().save(hql);
    List<Firm> f = (List<Firm>)this.getSession().createQuery(hql).setFirstResult(0).setMaxResults(5).list();
    return f;
    }
    service中是这样的:  public Map<String, Object> ps(){
         List<Firm> firm = null;
         Map<String, Object> maps = new HashMap<String, Object>();
         firm = jsonDao.sqlFirm();
         maps.put("firm",firm);
     return maps;
        }
    action中是这样的:
    public String xmlP(){
    maps = jsonService.ps();
    return "xml_success";
    }
    最后就是struts中的配置不知道是怎么回事,运行就出错,
     <package name="struts_json"  extends="json-default">
         <action name="jsonAction" class="jsonAction">
                <result name="xml_success" type="json">
                      <param name="root">maps</param>
               </result>
         </action>
       </package>
    大侠,帮我看看,感激不尽,
      

  5.   

    你 maps  要加对应的 set/get   方法
      

  6.   

    这个在action中定义了,private Map<String,Object> maps;
    下面对应的set/get方法在浏览器中访问时,报的这个错,我不知道怎么回事,是struts配置文件出的错,你帮我看看。
    There is no Action mapped for namespace / and action name jsonAction. - [unknown location] 
        com.opensymphony.xwork2.DefaultActionProxy.prepare(DefaultActionProxy.java:178)
        org.apache.struts2.impl.StrutsActionProxy.prepare(StrutsActionProxy.java:61)
        org.apache.struts2.impl.StrutsActionProxyFactory.createActionProxy(StrutsActionProxyFactory.java:39)
        com.opensymphony.xwork2.DefaultActionProxyFactory.createActionProxy(DefaultActionProxyFactory.java:47)
        org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:478)
        org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77)
        org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:91)
        org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
        org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
      

  7.   

    你是怎么访问action的?  还有你的action是spring管理的吗
      

  8.   

    在你的package标签属性上加个  namespace=“/”  试试
      

  9.   

    ssh中,action当然是spring管理的,那个packsge中加入namespace="/"也还是这个错,我觉得肯定是方法中还是存在错误,但是我找不到。
      

  10.   

    有没有别的action  别的action能正常访问吗?no   action  我估计是struts配置文件的问题  你看看有没有关联spring 
      

  11.   

    你后台进入没 啊?  class="jsonAction">  这个写成全路径 。
      

  12.   

    我现在只是用这个做测试,struts配置文件中的 package extends="json-default" Result 中的type="json" ,如果换成extends="struts-default" 那就不会出错,但是,我所希望转换的json格式就没有出来,所以spring的关联是没问题的,我怀疑是访问的时候出的问题,但是实在是找不出什么原因。
      

  13.   

    这个class=“”写成全路径也还是一样的错误,好多排错的方式我都试过了。我就觉得是方法中代码的问题,肯定存在错误,但是说的又是action的错误,真是搞不通,唉
      

  14.   

    我删除了配置文件中的这两句:<constant name="struts.enable.DynamicMethodInvocation"value="true" />
       <constant name="struts.devMode" value="true"></constant>现在直接报404路径找不到错误,我测底迷茫了。