2

我需要{"location":{"lat": 50.4, "lng": 30.5}} 在服务器上发送

我这样做

List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(1);
List<NameValuePair> gps = new ArrayList<NameValuePair>(2);
            gps.add(new BasicNameValuePair("lat", Util
                    .getLatitude()));
            gps.add(new BasicNameValuePair("lng", Util
                    .getLatitude()));

            nameValuePairs.add(new BasicNameValuePair("location",gps.toString()));

{"location":{"lat": "50.4", "lng": "30.5"}}

我需要发送浮点类型而不是字符串

4

2 回答 2

1

如果您想将 json Obejct 发送到服务器,则首先使用创建它,JSONObject而不是使用NameValuePair. 创建当前 JSONObject 为:

// main jsonObject
JSONObject json = new JSONObject();
// location JSONObject
JSONObject jsonlocation = new JSONObject();

// put key-value in  jsonlocation JSONObject
jsonlocation.put("lat", Util.getLatitude());  //<< put lat
jsonlocation.put("lng", Util.getLatitude());  //<< put lng

// put jsonlocation in main json JSONObject

json.put("location",jsonlocation);

现在将json对象发送到服务器。

发送 JSONObject 到服务器见

如何使用 Android 通过 Request 发送 JSON 对象?

于 2013-02-19T08:50:09.147 回答
0

我猜您想将 JSON 发送到服务器?您的代码 gps.toString() 创建列表的字符串值,而不是 JSON。您应该使用 JSON 库(例如 GSON)将您的列表解析为有效的 JSON。

使用 GSON,您可以将列表解析为 JSON,如下所示:

Gson gson = new Gson();
String json = gson.toJson(list);
于 2013-02-19T08:50:01.153 回答