在RESTJava中从字符串列表中获取值时出现问题

在RESTJava中从字符串列表中获取值时出现问题,java,string,mongodb,rest,Java,String,Mongodb,Rest,在rest服务中传递字符串参数后,从列表参数获取值时,我遇到了这个问题。代码如下: @POST @Path("/GetData") @Consumes({MediaType.APPLICATION_JSON, MediaType.APPLICATION_FORM_URLENCODED}) public Demo(@FormParam("Input_String") List Input_String) throws Exception { System.

在rest服务中传递字符串参数后,从列表参数获取值时,我遇到了这个问题。代码如下:

@POST
@Path("/GetData")
@Consumes({MediaType.APPLICATION_JSON,
        MediaType.APPLICATION_FORM_URLENCODED})
public Demo(@FormParam("Input_String") List Input_String)
        throws Exception {

    System.out.println("Parameters list1 is:" + Input_String);
    System.out.println("Parameters list2 is:" + Input_String.get(0));
    return null;
}
rest服务中传递的字符串为:

输入字符串:[“A”、“B”、“C”]

我的输出是:

Parameters list1 is:[["A", "B", "C"]]
Parameters list2 is:["A", "B", "C"]
Parameters list1 is:["A", "B", "C"]
Parameters list2 is: "A"
但期望的产出是:

Parameters list1 is:[["A", "B", "C"]]
Parameters list2 is:["A", "B", "C"]
Parameters list1 is:["A", "B", "C"]
Parameters list2 is: "A"

请指定如何使用
Input\u String.get(0)
Input\u String.get(1)
Input\u String.get(2)
方法获取“A”、“B”或“C”等值。谢谢您的帮助。

您的列表包含列表中的列表

因此,请尝试:
Input\u String.get(0).get(0)

必须在方法参数中使用
List
,才能使此代码正常工作

注意:使用java命名约定,变量名应以小写开头。你应该跟着camelCase走

编辑:作为一种解决方法,您可以尝试以下解决方案:

String data = Input_String.get(0).toString();
String[] items = data.replaceAll("\\[", "").replaceAll("\\]", "").replaceAll("\\s", "").split(",");

String val = items[0];

双大括号表示您正在处理一个列表列表。所以
Input_String.get(0))本身是一个列表,如果要再次选择该列表的第一个元素,则需要再次对其调用get方法。谢谢,但再次调用get方法,即输入字符串。get(0)。get(0)显示错误,似乎不适用!这是因为您使用的是原始类型列表,所以java不知道什么是
Input\u String.get(0)
,只将其视为
Object
。您可以尝试强制转换它:
((List)Input_String.get(0)).get(0)但再次显示错误:“java.lang.ClassCastException:java.lang.String无法转换为java.util.List”for((List)Input_String.get(0)).get(0)。请尝试将参数类型从
List Input_String
更改为
List Input_String
谢谢,但使用方法参数中的List向我显示rest服务错误:“javax.servlet.ServletException:servlet.init()用于servlet REST服务引发异常”尝试在方法参数中使用
String[][
,并使用
Input_String[0[0]
获取数据。使用String[][]获取相同错误,不知道哪里出错了!您能告诉我您得到的确切错误消息吗?显示此错误的消息:HTTP状态500-Servlet Jersey REST服务的Servlet.init()抛出异常类型异常报告消息Servlet.init()对于servlet Jersey REST服务引发的异常描述,服务器遇到一个内部错误,使其无法满足此请求。servlet Jersey REST服务引发的异常为javax.servlet.ServletException:servlet.init()