私は基本的なJSON問題に取り組んでいます: 私はJSON形式の文字列(http://api.open-notify.org/iss-now.json)を取ります。 ISSClassというクラスに情報を解析して、経度と緯度のフィールドを読み取ることができるメソッドに渡します。基本的なJSONオブジェクトを解析するときにGSONがnullを返さないようにするにはどうすればよいですか?
2つのフィールドを返そうとすると、nullになります。
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( "経度")を使用してみました。 'gson'をインスタンス化する場合と同じです。 Gson gson = new Gson(); 私はgson-2.8.1.jarをgsonに使用しています。
私は何かが明らかに欠けている。
私は何か不足していると思った。助けてくれてありがとう、初心者のために申し訳ありません – Alej