Java Gson-如何存储属性和值
如何将id和name的值分别存储为HashMap 目前,丢弃伪站会给我[{id:0,name:London},{id:1,name:Nottingham}]。遍历只会为每个列表元素提供一个JsonObject 主类 车站经理班Java Gson-如何存储属性和值,java,gson,Java,Gson,如何将id和name的值分别存储为HashMap 目前,丢弃伪站会给我[{id:0,name:London},{id:1,name:Nottingham}]。遍历只会为每个列表元素提供一个JsonObject 主类 车站经理班 您可以从StationManager循环浏览JSONObject列表,并将数据添加到HashMap public static void main(String[] args) { Map<Integer, String> output = new H
您可以从StationManager循环浏览JSONObject列表,并将数据添加到HashMap
public static void main(String[] args) {
Map<Integer, String> output = new HashMap<Integer, String>();
Gson gson = new Gson();
BufferedReader br = null;
try {
br = new BufferedReader(new FileReader("stations.json"));
StationManager sm = gson.fromJson(br, StationManager.class);
List<JsonObject> listOfObjs = sm.getPseudoStations();
for(JsonObject obj: listOfObjs){
output.put(obj.getInt("id"), obj.getString("name"));
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} finally {
if (br != null) {
closeBufferedReader(br);
}
}
}
我不明白你为什么认为你需要一个HashMap,或者它是如何存储你的id和name键值对的。创建一个POJO,其中包含与这些名称对应的两个字段。并将伪站点更改为该POJO的列表。创建一个具有属性名称和id的类站点,并将Json映射到该类。该类为Json中的每个站点创建一个新的类实例
public class StationManager {
@SerializedName("pseudoStations")
@Expose
private List<JsonObject> pseudoStations = null;
public void setPseudoStations(List<JsonObject> pseudoStations) {
this.pseudoStations = pseudoStations;
}
}
{
"pseudoStations":[
{
"id": 0,
"name": "London"
},
{
"id": 1,
"name": "Nottingham"
}
]
}
public static void main(String[] args) {
Map<Integer, String> output = new HashMap<Integer, String>();
Gson gson = new Gson();
BufferedReader br = null;
try {
br = new BufferedReader(new FileReader("stations.json"));
StationManager sm = gson.fromJson(br, StationManager.class);
List<JsonObject> listOfObjs = sm.getPseudoStations();
for(JsonObject obj: listOfObjs){
output.put(obj.getInt("id"), obj.getString("name"));
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} finally {
if (br != null) {
closeBufferedReader(br);
}
}
}