我正在尝试运行一个简单的jackson光标但是当我试图从Json文件获取数据时,它告诉“\ user.json(没有这样的文件或目录)”。
JacksonParser:
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());
}
}
user.json:
{
"name" : { "first" : "Joe", "last" : "Sixpack" },
"gender" : "MALE",
"verified" : false,
}
更新:我更正了上一个错误,但坚持使用下一个错误..它告诉“\ user.json(没有这样的文件或目录)”我已经更新了问题。
答案 0 :(得分:0)
你的问题根本与杰克逊无关,这更像是一般的Java问题。当您执行新的File(“user.json”)时,这将创建一个相对文件路径:它相对于您的应用程序工作目录。该文件不存在于当前工作目录中,因此Java无法找到该文件。您需要为文件提供更完整的路径才能工作。