gpt4 book ai didi

java - 如何使用@ResponseBody从 Controller 获取字符串数组?

转载 作者:太空宇宙 更新时间:2023-11-04 08:21:28 25 4
gpt4 key购买 nike

我正在使用 @ResponseBody 将 json 获取到浏览器。我可以获取数据,但现在如果我尝试获取字符串数组或字符串列表,则会得到以下内容

The resource identified by this request is only capable of generating responses with characteristics not acceptable according to the request "accept" headers ().

为什么会出现上述状态?

以下是我从 Controller 返回的对象

public  class Temp
{
List<String> strArr=new ArrayList<String>();
public Temp()
{
strArr.add("1");
strArr.add("2");
strArr.add("3");
strArr.add("4");
System.out.println("temp="+strArr);
}
}

以下是 Controller

@RequestMapping ( value = "/temp.htm" , method = RequestMethod.GET,produces="application/json")
public @ResponseBody Temp getTemp()
{
return new Temp();
}

我可以获得正常的字符串数据,但如果我尝试获取字符串数组或列表,我会得到上述状态。

请帮忙

最佳答案

a) 您需要将接受 header 设置为 application/json

b) 您的 bean 类不是正确的 Java bean。您需要公开一个 getter 方法:

public List<String> getStrArr(){return strAddr;}

c) 你的类路径上有 Jackson,并且你有正确的 mvc 配置吗?在大多数情况下,这就足够了:

 <mvc:annotation-driven />

(参见 this section )

d)我猜您必须删除 @ResponseBody 注释。它用于直接输出字符串,而不是用于对象的隐式转换。

关于java - 如何使用@ResponseBody从 Controller 获取字符串数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9464163/

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