【发布时间】:2020-07-06 20:37:50
【问题描述】:
当尝试将 json 文本文件解析为餐厅对象的数组列表时,我收到错误“预期为 BEGIN_ARRAY,但在第 1 行第 2 列路径中为 BEGIN_OBJECT。”我很困惑我哪里弄错了,因为我的 Restaurant 类中的数据成员与 json 文件中的字段完全对应。
主要
List<Restaurant> restaurants = new ArrayList<Restaurant>();
......
fr = new FileReader(filename);
br = new BufferedReader(fr);
Gson gson = new Gson();
TypeToken<List<Restaurant>> token = new TypeToken<List<Restaurant>>() {};
restaurants = gson.fromJson(br, token.getType());
餐厅类
public class Restaurant {
public String name;
public String address;
public double latitude;
public double longitude;
public List<String> menu = new ArrayList<String>();
//public double distance;
public Restaurant(String name, String address, double latitude, double longitude, List<String> menu) {
this.name = name;
this.address = address;
this.latitude = latitude;
this.longitude = longitude;
this.menu = menu;
//this.distance = 0;
}
}
txt 文件
{
"data": [
{
"name": "Northern Cafe",
"address": "2904 S Figueroa Street",
"latitude": 34.025550,
"longitude": -118.277440,
"menu": [
"orange chicken",
"rice",
"noodles",
"dumplings"
]
},
{
"name": "The Lab Gastropub",
"address": "3500 S Figueroa Street",
"latitude": 34.019940,
"longitude": -118.280530,
"menu": [
"fried chicken",
"chicken sandwich",
"spinach dip",
"cheeseburger",
"fries",
"milkshake"
]
},
{
"name": "Taco Bell",
"address": "3629 S Vermont Ave",
"latitude": 34.022360,
"longitude": -118.291850,
"menu": [
"chicken taco",
"beef taco",
"fries",
"soda",
"cheese dipping sauce"
]
}
]
}
【问题讨论】: