【发布时间】:2017-08-04 23:26:56
【问题描述】:
我正在处理一个基本的 JSON 问题: 我采用 JSON 格式的字符串(来自http://api.open-notify.org/iss-now.json)。 我将它传递给一个方法,该方法试图将信息解析到一个名为 ISSClass 的类中,以便我可以读取经度和纬度字段。
当我尝试返回这两个字段时,它们为空。
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.annotations.Expose;
public class GetWeather
{
public String getISSInfo(String json)
{
String output="";
Gson gson=new GsonBuilder().excludeFieldsWithoutExposeAnnotation().create();
ISSClass cond=new ISSClass();
cond= gson.fromJson(json, ISSClass.class);
output+="The ISS is at: "+cond.toString();
return output;
}
class ISSClass
{
public ISSClass(){}
@Expose
public String latitude;
@Expose
public String longitude;
public String toString()
{
return latitude+", "+longitude;
}
public void setLongitude(String lon)
{
longitude=lon;
}
public void setLatitude(String lat)
{
latitude=lat;
}
public String getLongitude()
{
return longitude;
}
public String getLatitude()
{
return latitude;
}
}
}
这是主要的:
public class GsonTester
{
public static void main(String[] args) throws Exception
{
JsonReader reader=new JsonReader();
String toParse="{\"message\": \"success\", \"timestamp\": 1501887780, \"iss_position\": {\"latitude\": \"-35.5370\", \"longitude\": \"-178.7080\"}}";
GetWeather weather=new GetWeather();
System.out.println(weather.getISSInfo(toParse));
}
}
我尝试使用 @SerializedName("longitude") 没有运气。 与实例化 'gson' 相同 Gson gson=新的 Gson(); 我正在为 gson 使用 gson-2.8.1.jar。
希望我遗漏了一些明显的东西。
【问题讨论】:
标签: java json serialization