[
{
"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)或更改反序列化类型为数组或实现集合接口的类型(例如ICollection,IList),如List可以从JSON数组反序列化.JsonArrayAttribute也可以添加到类型中以强制它从JSON数组反序列化。\ u000d \ u000aPath'[0] .Speed',第1行,第11位。“}}
答案 0 :(得分:0)
您需要使用JsonArray实例,而不是将JsonObject结果字符串附加到ArrayList。
,第二个错误是您使用accumulate而不是put将键映射到值,因为accumulate方法将值附加到映射到您提供的键的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();