下面是我的代码。当我运行时,它显示“json语法异常应为字符串,但为begin\u对象”。我不知道为什么它会显示错误。
{
"products": [
{
"name": "gam",
"pplsft": "75665",
"imei": "Ptwm ",
"created_at": "2012-12-03 04:58:01"
},
{
"name": "",
"pplsft": "0",
"imei": "",
"created_at": "2012-12-03 05:44:01"
},
{
"name": "gptw",
"pplsft": "0",
"imei": "at",
"created_at": "2012-12-03 05:58:18"
},
{
"name": "",
"pplsft": "0",
"imei": "",
"created_at": "2012-12-03 23:32:06"
},
{
"name": "",
"pplsft": "0",
"imei": "",
"created_at": "2012-12-03 23:35:25"
}
]
}
类文件是,但我不知道如何使用gson创建用于json解析的类文件。我能解释一下吗??
public class Results {
public String name;
@SerializedName("pplsft")
public int pplsft;
@SerializedName("imei")
public String imei;
@SerializedName("created_at")
public int created_at;
}
public class SearchResponse {
@SerializedName("products")
public List<Result> products;
@SerializedName("name")
public String name;
@SerializedName("pplsft")
public int pplsft;
@SerializedName("imei")
public String imei;
@SerializedName("created_at")
public int created_at;
public List<Result> getProducts() {
return products;
}
public void setProducts(List<Result> products) {
this.products = products;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getPplsft() {
return pplsft;
}
public void setPplsft(int pplsft) {
this.pplsft = pplsft;
}
public String getImei() {
return imei;
}
public void setImei(String imei) {
this.imei = imei;
}
public int getCreated_at() {
return created_at;
}
public void setCreated_at(int created_at) {
this.created_at = created_at;
}
}
这是从json调用数据的主要方法。
response = gson.fromJson(reader, SearchResponse.class);
Toast.makeText(this,response.name, Toast.LENGTH_SHORT).show();
List<Result> list = response.products;
对于JSON,您的对象应该如下所示:
SearchResponse response = gson.fromJson(reader, SearchResponse.class);
然后获取您的列表:
List<Product> mProducts = response.products;
要浏览您的列表,请执行以下操作:
for( Product pro : mProducts ){
String pName = pro.name;
......
}
或者您可以手动执行(从第一个对象获取名称;
mProducts.get(0).name;
现在您的班级:
public class SearchResponse {
@SerializedName("products")
public List<Product> products;
public class Product {
@SerializedName("name")
public String name;
@SerializedName("pplsft")
public String pplsft;
@SerializedName("imei")
public String imei;
@SerializedName("created_at")
public String created_at;
}
}
您的JSON
{
"products":[
{
"name":"gam",
"pplsft":"75665",
"imei":"Ptwm ",
"created_at":"2012-12-03 04:58:01"
},
{
"name":"",
"pplsft":"0",
"imei":"",
"created_at":"2012-12-03 05:44:01"
},
{
"name":"gptw",
"pplsft":"0",
"imei":"at",
"created_at":"2012-12-03 05:58:18"
},
{
"name":"",
"pplsft":"0",
"imei":"",
"created_at":"2012-12-03 23:32:06"
},
{
"name":"",
"pplsft":"0",
"imei":"",
"created_at":"2012-12-03 23:35:25"
}
]
}
也许这篇文章的解决方案也会对你有所帮助。
应为BEGIN\u对象,但在第1行第1列为字符串请帮助我,我遇到此错误 我的列表提供了从解析的json创建对象的类。Java语言 我的JSON: 使用GSON解析JSON的MainActivity代码。。。。。 错误:应为BEGIN\u对象,但在第1行第1列为字符串
我看到这个问题很多次了,但还是不明白。看起来我在现场发送请求,但它的正文不正确。但为什么呢?可能我不清楚改造是如何工作的,但我不是只是收集请求的链接并等待服务器的答案吗?这是链接:这里 带有请求的接口 和带有基本URL的类 改装构建类 JSON是通过这个解析的 主要活动是: 日志: 那么,如果请求错误,我应该为正常工作更改什么?
我正在使用Retro-Fit连接到API online。但是我在尝试解析返回的数据时遇到了这个错误。 返回的数据采用这种格式,数据模型也如下所示:
我试图只获取字符串请求,但它的给定错误如下 我的API输出如下: 响应代码:
我找到了一些解决方案,但我真的不知道如何开始。 这是我的密码。 接口 主要活动
我有一个API,为了获取数据,我必须发送一个JSON参数。这是必须在中发送才能获取数据的JSON。 它在postman中工作,但在Android中,我有以下错误: 我想这是我的模型中的一个问题,但我无法修复它。 我的型号: 还有两种型号用于排序和筛选。我使用改装 我使用构造函数设置SendParametersGetData(在本例中,仅设置了视图名和参数),并将其作为输入提供给getMembers