我正在做一个小型应用程序,以检查大学中的笔记本电脑是否可供借用,并且我一直在跟踪大多数教程,例如this和this。
很遗憾,我正在尝试从(无法编辑)获取数据的网页为我提供了带有大括号的数据,并且默认情况下{{3 }}。 (纯文本流量)。
[
[
{
"z36_rec_key": "000043057000060",
"z36_id": "16356332 ",
"z36_due_date": 20171221,
"z36_due_hour": 1159,
"status": "Unavailable"
},
{
"z36_rec_key": "none",
"z36_id": "none",
"z36_due_date": 0,
"z36_due_hour": 0,
"status": "Available"
}
]
]
在使用Volley和Gson时,有没有办法去除第一对括号?如果没有,我该怎么办?谢谢。
这是我的模特。
import com.google.gson.annotations.SerializedName;
public class Laptop {
@SerializedName("z36_rec_key")
public String barcode;
@SerializedName("status")
public String status;
@SerializedName("z36_due_date")
public int due_date;
public Notebook() {
}
}
更新: 我接受了Jaswant Singh的建议,只是在我的请求函数中添加了JSONArray。
jsonArray = new JSONArray(response);
posts = Arrays.asList(mGson.fromJson(jsonArray.get(0).toString(), ItemObject[].class));
答案 0 :(得分:1)
那个括号代表一个json数组
只需发送最终响应的第0个元素,即可从服务器端删除这些括号。
或者,如果您无权访问,只需从客户端(应用程序或网站)访问第0个元素(对象)即可。
如果使用POJO
object.get(0)
如果使用json数组
jsonArray.get(0)
我建议您仅使用JSONArray来解析您的响应。以字符串形式获取响应:
JSONArray jsonArray = new JSONArray(response);
答案 1 :(得分:0)
也可以将其反序列化为包含以下数组的数组:
Laptop[][] laptops = new Gson().fromJson(getPackageResourceReader(YOUR_JSON),
Laptop[][].class);
,在这种情况下,您可以获得结果-例如:
Laptop lt1 = laptops[0][0];
Laptop lt2 = laptops[0][1];