大家好、我现在有一个数组需要从我们的安卓app POST给我们的服务器:该数组包含一个tag(location)和一个JSON对象(包括坐标A和坐标B)。根据我目前的理解,在传递给我们服务器的时候,需要把方括号也一起传递过去。数组案例如下:
[
"location",
{
"coordinateA":12.45817,
"coordinateB":23.7656
}
]
我用来构建如上数组的JAVA代码如下:
JSONArray array = new JSONArray();
JSONObject item = new JSONObject();
item.put("coordinateA", "21.787");
item.put("coordinateB", "46.856");
array.put(item);
JSONObject locationFinalObj = new JSONObject();
locationFinalObj.put("location", array);
目前我在使用Volley JSON Object Request的标准方式来做,问题是一直有收到服务器端发送过来的HTTP 417状态码。我们的服务器对于header并没有什么特殊要求,所以我在想是不是建立JSON数组的时候,方法不对。
多谢大家帮忙!
"[\"location\",{\"coordinateA\":12.45817,\"coordinateB\":23.7656}]"
要带[]的话,用字符串的方式提交吧
原因
JSON对象错误,
JSON一般是需要以大括号{}开始和结尾的
解决方法
简单来说,也就是在你的数组前面包一层变成一个{}的JSON对象,
前面加个key也就是"data",原先的数组作为一个value,从而构建出来一个json对象
所以,修改你的格式为:
{
"data": [
"location",
{
"coordinateA": 12.45817,
"coordinateB": 23.7656
}
]
}
后边解析json的时候,也别忘了先解析出来'data',
然后再按照你原先的方法解析数组即可
如有问题及时沟通
检查代码编译