【问题标题】:How to display multiple JSON Object simultaneously in postman?如何在邮递员中同时显示多个 JSON 对象?
【发布时间】:2021-11-09 07:43:00
【问题描述】:

public String doStock(JsonObject SymbolName) throws Exception {
        JSONObject obj2 = new JSONObject(SymbolName);
        JSONArray jsonArray = (JSONArray) obj2.get("SymbolName");
        
        JSONObject obj3 = new JSONObject();
        Object obj = null;
        System.out.println("");
        System.out.println("Symbol Name: ");
        //Iterating the contents of the array
        for(int i = 0; i < jsonArray.length(); i++){
            obj = jsonArray.get(i);  
            System.out.println(obj);
            obj3=checkStock(obj.toString());
          
        }
    
        return obj3.toString();
     
    }

我的帖子请求:{"SymbolName":["ODP","ACC"]} 在此仅有关 ACC 的详细信息返回给邮递员,但在控制台中都显示,我想显示有关 ODP 的 json 对象和ACC。如何做到这一点?

【问题讨论】:

    标签: java postman rest


    【解决方案1】:

    问题不在于 PostMan,而在于您的响应对象。

    您需要创建一个包装方法,它将不同的“SymbolName”返回对象组合成一个新对象。

    根据您显示的代码,我知道您需要使用名为 doStock() 的方法遍历每个符号名称,在该方法中为每个符号名称运行 checkStock(symbolname) 方法,附加返回对象将 checkStock 方法放入一个数组/列表中,最后在处理完所有符号名称后,返回数组/列表。

    这个数组将包含你所有的 json 对象。

    在您的代码中,obj3 在循环中被覆盖,这就是为什么您只能在邮递员中看到一个对象,这将是您返回的最后一个 obj3。

    请看下面修改后的代码:

    public List doStock(JsonObject SymbolName) throws Exception {
            JSONObject obj2 = new JSONObject(SymbolName);
            JSONArray jsonArray = (JSONArray) obj2.get("SymbolName");
            
            JSONObject obj3 = new JSONObject();
            List returnList = new ArrayList()
            Object obj = null;
            System.out.println("");
            System.out.println("Symbol Name: ");
            //Iterating the contents of the array
            for(int i = 0; i < jsonArray.length(); i++){
                obj = jsonArray.get(i);  
                System.out.println(obj);
                obj3=checkStock(obj);
                returnList.add(obj3)
            }
        
            return returnList;
         
        }
    

    【讨论】:

    • 非常感谢您的回复,其实我现在正在学习这些概念。你能详细解释一下,如何创建这个包装方法吗? @纳瓦尼思森
    • 其实这个包装方法是一种通用的说法,但实际上你的doStock方法是为你组成这个新的返回对象的包装代码。
    • 我编辑了我的代码,但我得到了 [ { "escapeForwardSlashAlways": true }, { "escapeForwardSlashAlways": true } ] @Navaneeth Sen
    • 你能打印你的obj3吗?
    • 其实今天解决了,我刚刚添加了 returnlist.tostring() ,非常感谢你的帮助。 @Navaneeth Sen
    猜你喜欢
    • 1970-01-01
    • 2018-10-14
    • 2019-11-12
    • 2019-12-01
    • 1970-01-01
    • 2016-07-09
    • 1970-01-01
    • 1970-01-01
    • 2019-12-07
    相关资源
    最近更新 更多