我正在尝试通过网络服务连接到服务器。在这个Web服务中,我传递了namevaluepairs列表。现在问题是namevaluepair只接受(String,String)参数。我的服务器期望双值的位置。所以我无法将我的double转换为字符串并传递它(因为服务器将看到一个字符串并将抛出'错误格式'错误。
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
nameValuePairs.add(new BasicNameValuePair("Name", mydoublevalue));
JSONArray jsonobj = jsonParser.makeHttpRequest_array(url,type, nameValuePairs);
有什么出路吗?或者我是否必须将服务器的double类型更改为字符串,以便服务器期望字符串而不是double?
答案 0 :(得分:0)
这会将double值转换为String。
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
nameValuePairs.add(new BasicNameValuePair("Name", String.valueOf(mydoublevalue)));
JSONArray jsonobj = jsonParser.makeHttpRequest_array(url,type, nameValuePairs);
答案 1 :(得分:0)
最后我设法只在Android方面做到了。
这是我做了什么。 我创建了自己的类来实现NameValuePair接口。在那里你可以在BasicNameValuePair中使用STRING,DOUBLE而不是STRING,STRING。这是代码。
import org.apache.http.NameValuePair;
public class DoubleNameValuePair implements NameValuePair {
String name;
double value;
public DoubleNameValuePair(String name, double value) {
this.name = name;
this.value = value;
}
@Override
public String getName() {
return name;
}
@Override
public String getValue() {
return Double.toString(value);
}
}
然后,当您想要添加到列表时,只需执行
nameValuePairs.add(new DoubleNameValuePair("Latitude",21.3243));