将JSON文件读入Android应用程序

时间:2014-03-05 22:36:09

标签: android json

我有一个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文件夹中。显然,我正在寻找的方式是找不到它。

1 个答案:

答案 0 :(得分:1)

您想使用getAssets()并使用返回的AssetManageropen()您的文件。

@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);