0

我有一个从 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));
...
}

我从 AsyncTask 中调用它:

EditText userName = (EditText)findViewById(R.id.txtUserName);
EditText password = (EditText)findViewById(R.id.passWord);

return readJSONFeed("http://service.com/service.php", userName.getText().toString(), password.getText().toString());

我的问题是如何使 readJsonFeed 通用并将数组解析为名称值对。

4

1 回答 1

0

您可以尝试使用 String ... params,然后使用 params[0]、params[1] 等获取值。这会使事情变得有点复杂,因为您需要参数的名称和值,但您可以将将参数发送到方法时,总是这样的名称,值,并确保参数始终成对。

例如:

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
于 2014-11-17T17:18:58.243 回答