zoukankan      html  css  js  c++  java
  • struts+json 返回json格式多了斜杠的问题

    功能要求 C#做http请求 ,后台 struts+json 返回json格式数据, 大概代码是这样的

    后台java

        public String jo ;
        
        public String getNumpsQty(){
                           //***  
    JSONObject obj=new JSONObject(); JSONArray ja =JSONArray.fromObject(onv); obj.put("count", row); obj.put("root", ja); setJo(obj.toString()); System.out.println(jo); }catch(Exception e){ e.printStackTrace(); } return SUCCESS; }


    struts  配置

    <action name ="getOUTNumps" class ="Action.OUTServices"
                 method ="getNumpsQty">
                 <result type="json" name="success">
                 <param  name ="root">jo</param>
                 </result>
             </action>

    接收到json 的格式

    "{"count":6,"root":[{"numPs":"T10140019","qty":"500000"},{"numPs":"T10140020","qty":"200000"}]}"

     很明显格式有问题  多了个斜杠,无法解析
    去google一下发现大神们的解释:

    不能用String格式返回,String格式本身会加"" , 请求的json会经过两次序列化导致加了转义字符

    直接返回 JSONObject 就可以,

    public JSONObject jo ;
        
        public String getNumpsQty(){
            
            JSONObject obj=new JSONObject();
            try{
    //***
                List<OUTNumpsVo> onv=new ArrayList<OUTNumpsVo>();
                JSONArray ja =JSONArray.fromObject(onv);
                obj.put("count", row);
                obj.put("root", ja);
                setJo(obj);
                System.out.println(jo);
                
            }catch(Exception e){
                e.printStackTrace();
            }
            return SUCCESS;
        }
        
        public JSONObject getJo() {
            return jo;
        }
    
        public void setJo(JSONObject jo) {
            this.jo = jo;
        }
  • 相关阅读:
    【leetcode】92. 反转链表 II
    【leetcode】91. 解码方法
    【leetcode】89. 格雷编码
    【leetcode】86. 分隔链表
    【leetcode】82. 删除排序链表中的重复元素 II
    为什么选择react
    React 全家桶实现后台管理界面
    前后端同构
    浅谈React前后端同构防止重复渲染
    由React引发的前后端分离架构的思考
  • 原文地址:https://www.cnblogs.com/Marvellous/p/3987627.html
Copyright © 2011-2022 走看看