私はJson文字列をデコードするために何かをまとめようとしていますが、あまり運がありません。
現在、ファイルを読み取ってそのコンポーネントに解析しようとしています。ステータス値は問題なく読み取ることができますが、リストを読み取ろうとするとnullになり、その理由がわかりません。
誰かが私が間違っていることを私に見せてもらえますか?
ファイルの内容は次のとおりです。
{
"results" : [
{
"long_name" : "Long Name 1",
"short_name" : "Short Name 1"
},
{
"long_name" : "Long Name 2",
"short_name" : "Short Name 2"
}
],
"status" : "OK"
}
読み取ったファイルを解析するために使用しているコードは次のとおりです。
BufferedReader br =
new BufferedReader( new FileReader(aFile));
StringBuilder builder = new StringBuilder();
String st;
for (String line = null; (line = br.readLine()) != null;)
{
st = line.trim();
builder.append(st);
}
br.close();
String data = builder.toString();
Results rslt = new Gson().fromJson( data, Results.class );
List<ResultsData> resultsData = rslt.getResultsData();
System.out.println( "ResultsData : "+resultsData ); // This is null
System.out.println( "Status : "+rslt.getStatus() ); // This is OK
解析に使用している2つのクラスは次のとおりです。
import java.util.List;
public class Results {
private List<ResultsData> resultsData;
public List<ResultsData> getResultsData() { return resultsData; }
public void setResultsData( List<ResultsData> l ) { resultsData = l; }
private String status;
public String getStatus() { return status; }
public void setStatus( String s ) { status = s; }
}
と
public class ResultsData {
private String long_name = "";
public String getLong_name() {return long_name;}
public void setLong_name( String s ) { long_name = s; }
private String short_name = "";
public String getShort_name() {return short_name;}
public void setShort_name( String s ) { short_name = s; }
}