【问题标题】:How to structure Multiple object and array of JSON in java in beanshell and review the output如何在 beanshell 中的 java 中构造 JSON 的多个对象和数组并查看输出
【发布时间】:2019-05-06 17:22:13
【问题描述】:

这是 JSON 文件。我想让java可以产生这样的json。忽略这个值,我想要的是json的结构。 我在 beanshell 采样器中创建它

这是我在 beanshell 采样器中尝试过的

"itemLines": {
    "itemLine": [
        {
            "bundleParentId": "",
            "id": "1",
            "itemType": "ART",
            "itemNo": "00258882",
            "requiredQty": "1",
            "unitOfMeasure": "Piece"
        },{
            "bundleParentId": "",
            "id": "2",
            "itemType": "ART",
            "itemNo": "20215877",
            "requiredQty": "1",
            "unitOfMeasure": "Piece"
        },
        {
            "bundleParentId": "",
            "id": "2",
            "itemType": "ART",
            "itemNo": "20215877",
            "requiredQty": "1",
            "unitOfMeasure": "Piece"
        }
    ]
}

试过的代码是:

public void createJsonStructure() {

try
{
    JSONObject rootObject = new JSONObject();
    JSONArray articleArr = new JSONArray();
    String[] article_list = {"00258882", "70234185", "00258882"};
    log.info(article_list.length);  
    for (i=0;i<=article_list.length;i++)
    {
    JSONObject article_list= new JSONObject();
    article_list.put("id", "i+1");
    article_list.put("itemNo",article_list[i]);
    article_list.put("requiredQty", "1");
    articleArr.put(article_list);
    }
   log.info(articleArr);        
    rootObject.put("itemLines", articleArr);
    log.info("rootObject is"+rootObject.toString(4));
    props.put("JsonObjectoutput", rootObject.toString(4));        
   }
catch (Exception ex)
{
    ex.printStackTrace();
    log.info("notes");
}

}

输出没有粘贴到beanshell采样器中

【问题讨论】:

    标签: java json jmeter beanshell


    【解决方案1】:

    您可以创建看起来像您的 json 的对象结构,然后使用 Gson 将您的对象序列化为 int json。

    示例(我使用 lombok 删除批量代码):

    import lombok.AllArgsConstructor;
    import lombok.Data;
    
    @Data
    @AllArgsConstructor
    public class Item {
    
        private String bundleParentId;
        private int id;
        private String itemType;
        private String itemNo;
        private int requiredQty;
        private String unitOfMeasure;
    
    }
    
    import lombok.AllArgsConstructor;
    import lombok.Data;
    
    import java.util.List;
    
    @Data
    @AllArgsConstructor
    public class ItemLine {
    
        private List<Item> itemLine;
    
    }
    
    import lombok.AllArgsConstructor;
    import lombok.Data;
    
    @Data
    @AllArgsConstructor
    public class ItemLines {
    
        private ItemLine itemLines;
    
    }
    
    import com.google.gson.Gson;
    import com.google.gson.GsonBuilder;
    
    import java.util.ArrayList;
    import java.util.List;
    
    public class JsonTest {
    
        public static void main(String[] args) {
            Item item1 = new Item("", 1,"ART", "00258882", 1, "Piece");
            Item item2 = new Item("", 2,"ART", "20215877", 1, "Piece");
            Item item3 = new Item("", 2,"ART", "20215877", 1, "Piece");
    
            List<Item> items = new ArrayList<>();
            items.add(item1);
            items.add(item2);
            items.add(item3);
    
            ItemLine itemLine = new ItemLine(items);
            ItemLines itemLines = new ItemLines(itemLine);
    
            Gson gson = new GsonBuilder().setPrettyPrinting().create();
    
            System.out.println(gson.toJson(itemLines));
        }
    
    }
    

    【讨论】:

    • 我用过这个,但循环仍然没有在 beanshell 采样器中生成任何日志。
    猜你喜欢
    • 2017-09-05
    • 1970-01-01
    • 2020-03-01
    • 1970-01-01
    • 2021-12-07
    • 1970-01-01
    • 1970-01-01
    • 2015-01-05
    • 1970-01-01
    相关资源
    最近更新 更多