Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用REST将数组作为POST参数/有效负载发送到Android中的webservice_Java_Android_Web Services_Rest - Fatal编程技术网

Java 如何使用REST将数组作为POST参数/有效负载发送到Android中的webservice

Java 如何使用REST将数组作为POST参数/有效负载发送到Android中的webservice,java,android,web-services,rest,Java,Android,Web Services,Rest,我在我的Web服务中使用REST。这是我使用advancerestclient和formcontenttype(这是原始类型)测试Web服务时发送的示例有效负载/参数: 其中child\u id%5B%5D的原始意思是child\u id[],因此我发送了child\u id的数组(在上面的表单中最左和最右)。这里一切都很好 当我试图在Android应用程序中实现这一点时,出现了问题,我使用HashMap发布了这些有效负载/参数HashMapcant在同一个键下存储两个值,因此我无法执行以下操作

我在我的Web服务中使用REST。这是我使用
advancerestclient
formcontenttype
(这是原始类型)测试Web服务时发送的示例有效负载/参数:

其中
child\u id%5B%5D
的原始意思是
child\u id[]
,因此我发送了
child\u id
数组(在上面的
表单中最左和最右)。这里一切都很好

当我试图在Android应用程序中实现这一点时,出现了问题,我使用
HashMap
发布了这些有效负载/参数
HashMap
cant在同一个键下存储两个值,因此我无法执行以下操作:

map.put("child_id[]", 1);
map.put("child_id[]", 2);
最新的put将覆盖先前的put,因此Android应用程序将只发送
2
作为
child\u id
的值


我该怎么办?感谢您的帮助

您可以按如下方式向数组添加索引

map.put("child_id[0]", 1);
map.put("child_id[1]", 2);

您可以按如下方式向数组添加索引

map.put("child_id[0]", 1);
map.put("child_id[1]", 2);

您可以按如下方式向数组添加索引

map.put("child_id[0]", 1);
map.put("child_id[1]", 2);

您可以按如下方式向数组添加索引

map.put("child_id[0]", 1);
map.put("child_id[1]", 2);

您有一些解决此问题的选项。最简单的方法是创建一个类作为参数的容器,并将其存储在
ArrayList

public class Parameter {
    private String key;
    private String value;
    // Getters, setters, other stuff.
}
然后将其存储在
ArrayList

public class Parameter {
    private String key;
    private String value;
    // Getters, setters, other stuff.
}
您还可以创建一个类作为各种参数生成器。您可以这样做:

public class Parameters {
    private ArrayList<String> keys = new ArrayList<>();
    private ArrayList<String> values = new ArrayList<>();

    public void add(String key, String value) { ... }
    public ArrayList<String> getKeys() { ... }
    public ArrayList<String> getValues() { ... }
}
公共类参数{
私有ArrayList键=新ArrayList();
私有ArrayList值=新ArrayList();
公共void add(字符串键,字符串值){…}
公共ArrayList getKeys(){…}
公共ArrayList getValues(){…}
}
第二个选项需要更多的代码,但增加了一些额外的灵活性,应该有助于更干净的API


或者,正如您在自己的评论中所提到的,您可以选择使用
地图
。它也可以很好地替代上面示例中的
ArrayList
s。

您有几个选项可以解决这个问题。最简单的方法是创建一个类作为参数的容器,并将其存储在
ArrayList

public class Parameter {
    private String key;
    private String value;
    // Getters, setters, other stuff.
}
然后将其存储在
ArrayList

public class Parameter {
    private String key;
    private String value;
    // Getters, setters, other stuff.
}
您还可以创建一个类作为各种参数生成器。您可以这样做:

public class Parameters {
    private ArrayList<String> keys = new ArrayList<>();
    private ArrayList<String> values = new ArrayList<>();

    public void add(String key, String value) { ... }
    public ArrayList<String> getKeys() { ... }
    public ArrayList<String> getValues() { ... }
}
公共类参数{
私有ArrayList键=新ArrayList();
私有ArrayList值=新ArrayList();
公共void add(字符串键,字符串值){…}
公共ArrayList getKeys(){…}
公共ArrayList getValues(){…}
}
第二个选项需要更多的代码,但增加了一些额外的灵活性,应该有助于更干净的API


或者,正如您在自己的评论中所提到的,您可以选择使用
地图
。它也可以很好地替代上面示例中的
ArrayList
s。

您有几个选项可以解决这个问题。最简单的方法是创建一个类作为参数的容器,并将其存储在
ArrayList

public class Parameter {
    private String key;
    private String value;
    // Getters, setters, other stuff.
}
然后将其存储在
ArrayList

public class Parameter {
    private String key;
    private String value;
    // Getters, setters, other stuff.
}
您还可以创建一个类作为各种参数生成器。您可以这样做:

public class Parameters {
    private ArrayList<String> keys = new ArrayList<>();
    private ArrayList<String> values = new ArrayList<>();

    public void add(String key, String value) { ... }
    public ArrayList<String> getKeys() { ... }
    public ArrayList<String> getValues() { ... }
}
公共类参数{
私有ArrayList键=新ArrayList();
私有ArrayList值=新ArrayList();
公共void add(字符串键,字符串值){…}
公共ArrayList getKeys(){…}
公共ArrayList getValues(){…}
}
第二个选项需要更多的代码,但增加了一些额外的灵活性,应该有助于更干净的API


或者,正如您在自己的评论中所提到的,您可以选择使用
地图
。它也可以很好地替代上面示例中的
ArrayList
s。

您有几个选项可以解决这个问题。最简单的方法是创建一个类作为参数的容器,并将其存储在
ArrayList

public class Parameter {
    private String key;
    private String value;
    // Getters, setters, other stuff.
}
然后将其存储在
ArrayList

public class Parameter {
    private String key;
    private String value;
    // Getters, setters, other stuff.
}
您还可以创建一个类作为各种参数生成器。您可以这样做:

public class Parameters {
    private ArrayList<String> keys = new ArrayList<>();
    private ArrayList<String> values = new ArrayList<>();

    public void add(String key, String value) { ... }
    public ArrayList<String> getKeys() { ... }
    public ArrayList<String> getValues() { ... }
}
公共类参数{
私有ArrayList键=新ArrayList();
私有ArrayList值=新ArrayList();
公共void add(字符串键,字符串值){…}
公共ArrayList getKeys(){…}
公共ArrayList getValues(){…}
}
第二个选项需要更多的代码,但增加了一些额外的灵活性,应该有助于更干净的API



或者,正如您在自己的评论中所提到的,您可以选择使用
地图
。它也可以很好地替代上面示例中的
ArrayList
s。

您是否考虑过使用
集合
?@Justin否。我会看看它。谢谢lot@Justin你说的收藏是什么意思?是Arraylist吗?是否尝试向数组添加索引?i、 e child_id[0]和child_id[1]等等。@BlazeTama是的,对不起。从技术上讲,
HashMap
也是一个
集合
ArrayList
可能就是您想要的。您是否考虑过使用
集合
?@Justin否。我会看一看。谢谢lot@Justin你说的收藏是什么意思?是Arraylist吗?是否尝试向数组添加索引?i、 e child_id[0]和child_id[1]等等。@BlazeTama是的,对不起。从技术上讲,
HashMap
也是一个
集合
ArrayList
可能就是您想要的。您是否考虑过使用
集合
?@Justin否。我会看一看。谢谢lot@Justin你说的收藏是什么意思?是Arraylist吗?是否尝试向数组添加索引?i、 e child_id[0]和child_id[1]等等。@BlazeTama是的,对不起。从技术上讲,
HashMap
也是一个
集合
。A.