Читання файлу json в Android [закрито]


84

У мене є такий файл JSON. Я хочу знати, де слід розмістити файл json у своєму проекті та як його читати та зберігати.

{
"aakash": [
    [  0.070020,0.400684],
    [  0.134198,0.515837],
    [  0.393489,0.731809],
    [  0.281616,0.739490]

],
"anuj": [
    [  1287.836667,-22.104523],
    [  -22.104523,308.689613],
    [  775.712801,-13.047385],
    [  -13.047385,200.067743]
]
}

3
Перш ніж розміщувати запитання тут, вам потрібно погугліти. У мережі є безліч прикладів.
Chirag

2
@ChiragRaval Я згоден. Але де я можу розмістити файл json для читання з файлу?
Aakash Anuj

якщо у вас є статичний файл json, ви можете розмістити його в активах та необроблених папках у своєму проекті, але якщо ви створюєте файл json динамічно, тоді створіть файл на SDCARD
ρяσѕρєя K

2
@AakashAnuj: див. Відповідь Faizan і помістив файл у папку активів
ρяσѕρєя K

16
Не знаю, чому це було закрито. Питання здається мені абсолютно зрозумілим і точним. 1) Де зберігаються файли даних JSON при розробці програми для Android. 2) Як мені прочитати ці дані? Звичайно, це можна розбити на два питання, але два питання настільки пов'язані (ви ніколи не будете використовувати одне без іншого), і ви можете задати обидва, що зробив AakashAnuj. Крім того, @Faizan чудово впорався з цим, відповівши на це, що скасовує "невідповідну" скаргу. Вирок? Дійсне запитання
SMBiggs

Відповіді:


210

Помістіть цей файл в ресурси .

Для проекту, створеного в проекті Android Studio, потрібно створити папку активів під основною папкою.

Прочитайте цей файл як:

public String loadJSONFromAsset(Context context) {
        String json = null;
        try {
            InputStream is = context.getAssets().open("file_name.json");

            int size = is.available();

            byte[] buffer = new byte[size];

            is.read(buffer);

            is.close();

            json = new String(buffer, "UTF-8");


        } catch (IOException ex) {
            ex.printStackTrace();
            return null;
        }
        return json;

    }

а потім ви можете просто прочитати це stringповернення за допомогою цієї функції як

JSONObject obj = new JSONObject(json_return_by_the_function);

Для отримання додаткової інформації щодо JSON див. Http://www.vogella.com/articles/AndroidJSON/article.html

Сподіваюся, ви отримаєте те, що хочете.


3
що робити, якщо розмір файлу становить майже від 6 до 7 Мб? якщо зберігати файл, що містить рядок, він видає виняток (не вистачає пам'яті). Чи є спосіб отримати з файлу JsonArray одночасно лише один jsonObject?
Hiren Dabhi,

Як прочитати файл JSON за веб-посиланням?
Si8

7
Для проекту, створеного в проекті Android Studio, потрібно створити папку активів під основною папкою, що таке asset folderі main folder?
Hirdesh Vishwdewa

3
Розподіл буфера на основі результату, який повертає available (), є неправильним згідно з документами Java: docs.oracle.com/javase/7/docs/api/java/io/… "Зверніть увагу, що хоча деякі реалізації InputStream повернуть загальна кількість байтів у потоці, багато хто не буде. Ніколи не правильним є використання поверненого значення цього методу для виділення буфера, призначеного для зберігання всіх даних у цьому потоці. "
Ендрю

@ SiKni8 Дивіться тут: stackoverflow.com/a/9606629/1536976
Trilarion

-1

Спробуйте це:

JSONObject obj = new JSONObject(yourjsonstring);

що таке yourjsonstring? У мене є файл bif, з якого я хочу читати.
Aakash Anuj

2
Дивіться відповідь
Файзана
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.