Проблема при работе с gson
Вижу, что на форуме неоднократно обсуждалась тема работы получения данных из json с помощью библиотеки gson , но решил спросить ещё раз.
Имеется json-структура следующего вида:
{
"collection_rest_access":
{
"@COUNT":"1",
"@START":"1",
"@TOTAL_COUNT":"1",
"rest_access":
{
"@id":"400001",
"@REL_ATTR":"400001",
"@COMMON_NAME":"538213764",
"expiration_date":1430128973
}
}
}
Мне необходимо получить значение переменной expiration_date.
Создал следующие классы для получения данных:
public class CollectionAccess {
ArrayList<RestAccess> restaccess;
public void setAccess (ArrayList<RestAccess> rr) {
restaccess = rr;
}
public ArrayList<RestAccess> getAccess () {
return restaccess;
}
}
public class RestAccess {
String expiration_date;
public void setExpDate (String expdate){
this.expiration_date = expdate;
}
public String getExpDate() {
return this.expiration_date;
};
}
Вот вызов классов из программы:
public static void main(String[] args) throws FileNotFoundException, IOException {
// TODO code application logic here
String fpath = "C:\\BPMINST\\json.txt";
String json_str = "";
BufferedReader bufferedReader = null;
bufferedReader = new BufferedReader(new FileReader(fpath));
String sCurrentLine;
while ((sCurrentLine = bufferedReader.readLine()) != null) {
json_str = json_str + sCurrentLine;
}
System.out.println(json_str);
Gson gson = new Gson();
CollectionAccess orderHeader = gson.fromJson(json_str, CollectionAccess.class);
if (orderHeader==null){
System.out.println("orderHeader is null");
return;
} else {
System.out.println("orderHeader not is null");
};
ArrayList<RestAccess> orderDetailList = orderHeader.getAccess();
if (orderDetailList!=null){
System.out.println(orderDetailList.size());
};
}
но результат отработки возвращает null. Подскажите пожалуйста, что может быть не так с классами?