java - 如何在beanshell中构造Java中的多个对象和JSON数组并查看输出

标签 java json jmeter beanshell

这是 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 采样器中

最佳答案

您可以创建类似于 json 的对象结构,然后使用 Gson 将对象序列化为 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));
    }

}

关于java - 如何在beanshell中构造Java中的多个对象和JSON数组并查看输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56001955/

相关文章:

java - 单例模式中如何处理异常?

java - 在 Java 中从 .txt 文件导入字符串时跳过每隔一行

java - ImageView 在其可绘制对象之间闪烁

php - 我想根据登录的用户名使用 php 更新数据库中的字段,但它不起作用

java - 来自响应的 Jmeter 变量

jmeter - 将文件夹中的所有 jar 添加到 jmeter 类路径

java - 使用 SetBigStringTryClob 通过 Oracle JDBC 处理 CLOB 的性能影响

c# - 从 StreamingAssets 文件夹中读取 json 文件

javascript - 将两个数组合并为一个javascript对象

java - JMeter - 无法使用 CIFS Sampler(Groovy) 扩展网络带宽