Java 使用Gson从JSON转换为POJO时出现的问题
我有一个JSON REST端点响应,我想从中获取Java 使用Gson从JSON转换为POJO时出现的问题,java,json,gson,Java,Json,Gson,我有一个JSON REST端点响应,我想从中获取hotelNbr的值。我该怎么做 { "found": [ { "hotelNbr": 554050442, "hotelAddress": "119 Maven Lane, New Jersey", } ], "errors": [] } 我正在使用下面的代码获取它,但在下面提到的行中失败: public List RDS\u POST\u HotelDetails(字符串HotelName,
hotelNbr
的值。我该怎么做
{
"found": [
{
"hotelNbr": 554050442,
"hotelAddress": "119 Maven Lane, New Jersey",
}
],
"errors": []
}
我正在使用下面的代码获取它,但在下面提到的行中失败:
public List RDS\u POST\u HotelDetails(字符串HotelName,字符串sUrl)引发异常,IOException{
Gson Gson=new GsonBuilder().setPrettyPrinting().create();
//创建您的http客户端
CloseableHttpClient httpclient=HttpClientBuilder.create().build();
//创建http Put对象
HttpPost ohttppost=新的HttpPost(sUrl);
//消息体
StringEntity输入=新StringEntity(
“{\'hotelNbr\':[\”“+HotelName+“\”]}”
);
//设置帖子的内容类型
setContentType(“应用程序/json”);
//将消息正文附加到请求
Ohttpost.setEntity(输入);
//提交请求并保存响应
HttpResponse response=httpclient.execute(ohttppost);
//获取响应体(实体)并解析为字符串
String sEntity=EntityUtils.toString(response.getEntity());
List hotelobject=new ArrayList();
//创建一个表示json响应中对象类型的类型标记
//我必须使用类型的完整类路径,因为我们的项目中也有一个类型类
java.lang.reflect.Type cType=new-TypeToken(){
}.getType();
//使用gson.fromJson(,
// )
hotelObject=gson.fromJson(sEntity,cType);//这里有个错误
字符串hotelNumber=hotelObject.get(0.getFound().get(0.getItemNbr().toString();
}
请在下面找到Hotel.java类
package com.hotels.company;
import java.util.List;
import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;
public class Hotel {
@SerializedName("found")
@Expose
private List<Found> found = null;
@SerializedName("errors")
@Expose
private List<Object> errors = null;
public List<Found> getFound() {
return found;
}
public void setFound(List<Found> found) {
this.found = found;
}
public List<Object> getErrors() {
return errors;
}
public void setErrors(List<Object> errors) {
this.errors = errors;
}
}
我试图在StackOverflow问题中找到一些示例,但没有找到我的解决方案。任何帮助都将不胜感激。您正在解析的JSON格式不正确 “hotelAddress”后面有一个逗号,请删除 正确的JSON应该是:
{
"found":[
{
"hotelNbr":554050442,
"hotelAddress":"119 Maven Lane, New Jersey"
}
],
"errors":[ ]
}
我发现了几个问题:
“hotelAddress”:“新泽西州马文巷119号”
的末尾有一个逗号。请将其删除列表
,但提到的json不是列表。请更新json或将其反序列化为酒店
对象,而不是列表
什么是错误堆栈?我从JSON中删除了,但仍然得到相同的问题