0

単純な jackson パーサーを実行しようとしていますが、Json ファイルからデータを取得しようとすると、「\user.json(そのようなファイルやディレクトリはありません)」と表示されます。

ジャクソンパーサー:

public class JacksonParser {

    static ObjectMapper mapper = new ObjectMapper();

    public static User mapping() throws JsonParseException,
            JsonMappingException, IOException {

        User user = mapper.readValue(new File("user.json"), User.class);
        if (user == null)
            return user;
        return user;
    }

}

User.java (pojo クラス):

public class User {
    public enum Gender {
        MALE, FEMALE
    };

    public static class Name {
        private String _first, _last;

        public String getFirst() {
            return _first;
        }

        public String getLast() {
            return _last;
        }

        public void setFirst(String s) {
            _first = s;
        }

        public void setLast(String s) {
            _last = s;
        }
    }

    private Gender _gender;
    private Name _name;
    private boolean _isVerified;

    public Name getName() {
        return _name;
    }

    public boolean isVerified() {
        return _isVerified;
    }

    public Gender getGender() {
        return _gender;
    }

    public void setName(Name n) {
        _name = n;
    }

    public void setVerified(boolean b) {
        _isVerified = b;
    }

    public void setGender(Gender g) {
        _gender = g;
    }

}

主な活動:

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        TextView textview = (TextView) findViewById(R.id.textView);
        User user = null;

        try {
            user = JacksonParser.mapping();
        } catch (Exception e) {
            e.getStackTrace();
        }

        textview.setText("" + user.getName() + " " + user.getGender() + " " + user.isVerified());
    }

}

ユーザー.json:

{
    "name" : { "first" : "Joe", "last" : "Sixpack" },
    "gender" : "MALE",
    "verified" : false,
}

更新:前のエラーを修正しましたが、次のエラーに固執しました.「\ user.json(そのようなファイルまたはディレクトリはありません)」と言って、質問を更新しました。

4

1 に答える 1

0

あなたの問題はジャクソンとはまったく関係ありません。これはJavaの一般的な質問です。new File("user.json") を実行すると、相対ファイル パスが作成されます。これは、アプリケーションの作業ディレクトリからの相対パスです。そのファイルは現在の作業ディレクトリに存在しないため、Java はファイルを見つけることができません。ファイルを機能させるには、より完全なパスを指定する必要があります。

于 2013-04-02T14:19:09.063 に答える