繁体   English   中英

如何在Android中使用HttpPost发送多个Json数据

[英]How do I send multiple Json data using HttpPost in android

[
   {
    "val1" : -1,
    "val2" : -1,
    "id" : 0,
    "diff" : -1,
    },
{
   ….
 }
]

我有一个需要发送到服务器的数据列表。 我正在通过HttpPost发送数据,我在Json中获得了数据并按如下方式创建了一个字符串,但是我如何发送所有数据,而不仅仅是一起发送一个字符串。 在服务器端需要50个这样的数据列表。

      JSONObject jsonObject = new JSONObject();
      ArrayList<String> mydata = new ArrayList<String> data();

      String json = "";
      jsonObject.accumulate("val1", val);
      jsonObject.accumulate("val2", val2);
      jsonObject.accumulate("id", id);
      jsonObject.accumulate("diff", diff);
      json = jsonObject.toString();
       mydata.add(json);

编辑:使用JSONArray时:{“ Status”:{“ Code”:699,“ Description”:“无法将当前JSON数组(例如[1,2,3])反序列化为类型'System.Single',因为该类型需要要正确反序列化的JSON基本值(例如,字符串,数字,布尔值,null)。\\ u000d \\ u000a要修复此错误,请将JSON更改为JSON基本值(例如,字符串,数字,布尔值,null)或将反序列化类型更改为\\ u000d \\ u000aPath'可以从JSON数组反序列化实现List的集合接口(例如ICollection,IList)的数组或类型,也可以将JsonArrayAttribute添加到该类型以强制从JSON数组反序列化。 [0] .Speed',第1行,位置11。“}}

您需要使用JsonArray实例,而不是将JsonObject结果字符串附加到ArrayList。

第二个错误是您使用的是累加而不是键映射到值,因为累加方法将值附加到映射到您提供的键的JsonArray上。

JSONArray jsonArray = new JSONArray();
// for every item in the 50 item you need to send
JSONObject obj = new JSONObject();
jsonObject.put("val1", val);
jsonObject.put("val2", val2);
jsonObject.put("id", id);
jsonObject.put("diff", diff);
jsonArray.put(obj);
// then you need to send the data to the server
String data = jsonArray.toString();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM