我正在尝试整理一些东西来解码 Json 字符串并且运气不佳。
现在,我正在尝试读取一个文件并将其解析为它的组件。我可以很好地读取状态值,但是当我尝试读取列表时,我得到空值,我不明白为什么。
谁能告诉我我做错了什么?
这是文件的内容:
{
"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
这是我用于解析的两个类:
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; }
}