我正在尝试整理一些东西来解码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
以下是我用于解析的两个类:
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; }
}
答案 0 :(得分:1)
我猜是因为JSon文件显示results
,Result
类中的相应字段名为resultsData
。换句话说:架构不匹配。那么你的架构是什么样的?