gpt4 book ai didi

java - 使用 int 数组将 JSON 序列化为 Spring RequestBody

转载 作者:行者123 更新时间:2023-12-02 01:05:06 26 4
gpt4 key购买 nike

我有一个 Spring Controller 方法,它将 @RequestBody 指定为参数。请求正文的类看起来像这样

public class myClass {
CustomObject obj
int x
int y
int[] values
Character c

//getters and setters
}

我正在编写单元测试,但在通过普通 JSONobject 设置 int[] value 元素时遇到问题。如果可能的话,我不想使用 JSONArray,因为其他元素可以通过 JSONObject 很好地传递,如下所示:

JSONObject requestParams = new JSONObject();

if(obj != null)
requestParams.put("obj", obj);

if(c != null)
requestParams.put("c", c);

我尝试过 requestParams.put("values", Arrays.toString(values)),其中 value 定义为 int[] value = new int[]{10,20 ,30,40,50,60,10,15,20,30,40,55} 但当我尝试发送请求时,仅当 values 时仍然收到 400 错误不为空。

如何通过 JSONObject 将此值列表发送到 RequestBody 类?

最佳答案

您可以像下面这样使用:

//prepare list 
List<Integer> list = new ArrayList<Integer>();
list.add(10);
list.add(20);
...
list.add(100);

JSONArray array = new JSONArray();

for (int i = 0; i < list.size(); i++) {
array.put(list.get(i));
}
JSONObject obj = new JSONObject();

try {
obj.put("values", array);
}catch(JSONException ee){

}

以上是减少样板代码的简化方法。

关于java - 使用 int 数组将 JSON 序列化为 Spring RequestBody,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60159485/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com