在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")));

09-20 19:55