Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/360.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构建一个通用的HttpPost函数,该函数将解析数组中的名称-值对_Java_Arrays_Basicnamevaluepair - Fatal编程技术网

我想用Java构建一个通用的HttpPost函数,该函数将解析数组中的名称-值对

我想用Java构建一个通用的HttpPost函数,该函数将解析数组中的名称-值对,java,arrays,basicnamevaluepair,Java,Arrays,Basicnamevaluepair,我有一个从web服务读取JSON的函数: public String readJSONFeed(String URL, String userName, String password){ ... List<NameValuePair> params = new ArrayList<NameValuePair>(2); params.add(new BasicNameValuePair("userName", userName)); params.

我有一个从web服务读取JSON的函数:

public String readJSONFeed(String URL, String userName, String password){
...
    List<NameValuePair> params = new ArrayList<NameValuePair>(2);
    params.add(new BasicNameValuePair("userName", userName));
    params.add(new BasicNameValuePair("password", password));
...
}

我的问题是如何使readJsonFeed成为泛型,并将数组解析为名称-值对。

您可以尝试使用字符串。。。params,然后使用params[0]、params[1]等获取值。这会使事情变得有点复杂,因为您需要param的名称和值,但您可以在将params发送到方法时始终输入名称、值,就像这样,并确保params始终成对

例如:

public String readJSONFeed(String ... params){

    if (params.lenght % 2 != 0) return null;

    List<NameValuePair> params = new ArrayList<NameValuePair>(params.lenght / 2);
    for (int i = 0; i < params.lenght - 1; i += 2) {
        params.add(new BasicNameValuePair(params[i], params[i + 1]));
}

//calling
readJSONFeed(name1, value1, name2, value2, name3, value3); etc
公共字符串readJSONFeed(字符串…参数){
如果(参数长度%2!=0)返回null;
列表参数=新阵列列表(参数长度/2);
对于(int i=0;i
来自PHP背景,我一直在想,我可以以某种方式创建一个关联数组,然后遍历键/值。不过,这也可以。谢谢!!当然,你也可以这样做,参数毕竟是一个数组
public String readJSONFeed(String ... params){

    if (params.lenght % 2 != 0) return null;

    List<NameValuePair> params = new ArrayList<NameValuePair>(params.lenght / 2);
    for (int i = 0; i < params.lenght - 1; i += 2) {
        params.add(new BasicNameValuePair(params[i], params[i + 1]));
}

//calling
readJSONFeed(name1, value1, name2, value2, name3, value3); etc