[英]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.