我有一个JSON文件,其中包含一些联系人,需要从这些联系人中创建对象以在ListView中显示。我的问题似乎是访问contacts.json文件。我不明白应该放在哪里,所以程序可以找到它。我一直收到FileNotFoundException。有谁知道我应该把这个文件放在哪里以及如何从该位置访问它?我目前的代码如下:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ArrayList<contact> contacts = new ArrayList<contact>();
String Root_Dir = Environment.getExternalStorageDirectory().getAbsolutePath();
File file = new File(Root_Dir+"/contacts.json");
String s = "";
try {
Log.d("contact", "1");
Scanner in = new Scanner(file);
StringBuilder sb = new StringBuilder();
contacts.json当前位于assets文件夹中。显然,我正在寻找的方式是找不到它。
答案 0 :(得分:1)
您想使用getAssets()
并使用返回的AssetManager
至open()
您的文件。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
try {
InputStream stream = getAssets().open("contacts.json");
// Do something with the stream
stream.close();
} catch (IOException ex) {
// Handle exception
}
}
编辑:
如果你想解析你的JSON我推荐GSON。
首先使用与JSON中相同的字段名创建一个类(在下面的示例Contact
中)。
InputStream stream;
Contact[] contacts = new Gson().fromJson(new InputStreamReader(stream), Contact[].class);