在Spring MVC中,我有一个mytable.json文件。
我想获取该json文件数据,然后将其添加到model.addAttribute()。
mytable.json
{"name1":["place1.1","place1.2"],
"name2":["place2.1","place1.2"]
...........
.........}
我想获取带有相应城市列表的名称。
例如:
name1 = place1.1,place1.2
所以,我做了:-
try {
JSONParser parser = new JSONParser();
ClassLoader classLoader = getClass().getClassLoader();
File file = new File(classLoader.getResource("file/mytable.json").getFile());
JSONObject obj = (JSONObject) parser.parse(new FileReader(file));
Iterator<String> keys = obj.values().iterator();
while( keys.hasNext() )
{
String key = (String)keys.next();
if ( obj.get(key) instanceof JSONObject )
{
model.addAttribute("key", key);
}
}
} catch (Exception e) {
e.printStackTrace();
}
但我得到了错误:
位置0处出现意外字符(�)。
在这一行:
JSONObject obj = (JSONObject) parser.parse(new FileReader(file));
为什么?问题出在哪里?
最佳答案
JSONParser parser = new JSONParser();
需要JSON字符串,而不是.json文件。因此出现意外字符...错误。
您可以InputStreamReader
:
jsonObject = (JSONObject) parser.parse(new InputStreamReader(new FileInputStream("file/mytable.json")));