{
"Servers": [
{
"server": "server1",
"port": "8000"
},
{
"server": "server2",
"port": "8000"
},
{
"server": "server3",
"port": "8000"
}
]
}
我正在尝试使用以下命令将此json文件放入HashMap:
Map<String,Object> map = mapper.readValue(jsonfile, new TypeReference<Map<String, Object>>() {});
jsonfile
此处指示存储json文件的路径。
请建议我如何将这个json文件放入HashMap。
答案 0 :(得分:0)
易于维护的解决方案是使用JSON解析库之一,例如GSON
一般情况下,您必须创建bean对象,它将定义json文件的结构,然后您可以像这样解析它
BufferedReader br = new BufferedReader(
new FileReader("c:\\file.json"));
//convert the json string back to object
DataObject obj = gson.fromJson(br, DataObject.class);
答案 1 :(得分:0)
我也建议使用Gson。
如果您使用Gradle as,请将其导入您的项目(您的应用的build.gradle);
compile 'com.google.code.gson:gson:2.3.1'
如果您没有使用Gradle,请参阅Gson docs here了解其他构建工具。
创建一个容器对象来解析你的Json并保存你的值;
class Server {
String server;
int port;
// I did not take encapsulation into account for brevity
}
然后使用Gson将您的Server对象解析为列表;
BufferedReader br = new BufferedReader(new FileReader("path_to_your_file"));
Gson gson = new Gson();
ArrayList<Server> serverList = gson.fromJson(br, new TypeToken<List<Server>>(){}.getType());
serverList将包含您的服务器对象列表。