Eclipse没有读取JSON文件

时间:2012-01-25 15:56:11

标签: java eclipse json

我正在尝试运行一个从JSON文件中读取一些值的java类。但是,当我运行它时,我收到错误:

java.io.FileNotFoundException: \file001.json (The system cannot find the file specified)
    at java.io.FileInputStream.open(Native Method)
    at java.io.FileInputStream.<init>(Unknown Source)
    at java.io.FileInputStream.<init>(Unknown Source)
    at java.io.FileReader.<init>(Unknown Source)
    at jsonPractice.main(jsonPractice.java:21)

我使用的代码是:

import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.Iterator;

import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
import org.json.simple.parser.ParseException;

public class jsonPractice {


        @SuppressWarnings("unchecked")
        public static void main(String[] args)
        {
            JSONParser parser = new JSONParser();
            try
            {
                Object obj = parser.parse(new FileReader("file001.json"));
                JSONObject jsonObject = (JSONObject) obj;
                String name = (String) jsonObject.get("name");
                System.out.println(name);

                long age = (Long) jsonObject.get("age");
                System.out.println(age);

                JSONArray msg = (JSONArray) jsonObject.get("messages");
                Iterator<String> iterator = msg.iterator();
                while (iterator.hasNext())
                {
                    System.out.println(iterator.next());
                }
            }
              catch (FileNotFoundException e) {
                e.printStackTrace();
            }
              catch (IOException e) {
                e.printStackTrace();
            }
              catch (ParseException e) {
                e.printStackTrace();
            }
        }
}

我确保将json jar添加到构建路径,file001.json位于项目工作区的文件夹内。

由于

2 个答案:

答案 0 :(得分:0)

这里最简单的方法是使用文件的完整路径:

Object obj = parser.parse(new FileReader("C:/the/full/path/file001.json"));

答案 1 :(得分:0)

您可以使用 -

获取当前目录
String currentDir = new File(".").getAbsolutePath();

System.getProperty("user.dir");

让我们考虑您的文件位于/home/user/test/file/file001.json,并且您使用当前目录命令获得/home/user/test/。然后,将其余file/file001.json添加为 -

Object obj = parser.parse(new FileReader(currentDir + "file/file001.json"));