Android에서 json 파일 읽기 [닫힘]


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
여기에 질문을 게시하기 전에 인터넷 검색이 필요합니다. 인터넷에서 사용할 수있는 수많은 예제가 있습니다.
살짝

2
@ChiragRaval 동의합니다. 하지만 파일에서 읽을 json 파일을 어디에 두어야합니까?
Aakash Anuj

정적 json 파일이있는 경우 프로젝트의 자산 및 원시 폴더에 배치 할 수 있지만 json 파일을 동적으로 생성하는 경우 SDCARD에 파일을 생성합니다
ρяσѕρєя K

2
@AakashAnuj : Faizan 답을보고 폴더 자산 당신에게 파일을 넣어
K ρяσѕρєя

16
이것이 왜 닫혔는지 모릅니다. 질문은 나에게 완벽하게 명확하고 정확 해 보입니다. 1) Android 앱을 개발할 때 json 데이터 파일이 저장되는 위치. 2) 그 데이터를 어떻게 읽습니까? 물론 이것은 두 가지 질문으로 나눌 수 있지만 두 질문은 매우 관련이 있습니다 (다른 질문 없이는 절대 사용하지 않을 것입니다). AakashAnuj가 한 것처럼 둘 다 질문 할 수도 있습니다. 또한 @Faizan은 이에 대한 답변을 훌륭히 수행하여 "답변 할 수없는"불만 사항을 무효화했습니다. 평결? 유효한 질문
SMBiggs

답변:


210

해당 파일을 자산에 넣습니다 .

Android Studio 프로젝트에서 생성 된 프로젝트의 경우 기본 폴더 아래에 assets 폴더를 생성해야합니다.

해당 파일을 다음과 같이 읽으십시오.

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 ~ 7MB이면 어떻게됩니까? 파일 포함을 문자열에 저장하면 예외가 발생합니다 (메모리 부족). JsonArray 파일에서 한 번에 하나의 jsonObject 만 검색하는 방법이 있습니까?
Hiren Dabhi 2013-10-05

웹 링크에서 JSON 파일을 어떻게 읽습니까?
Si8 2013

7
Android Studio 프로젝트에서 만든 프로젝트의 경우 기본 폴더 아래에 자산 폴더를 만들어야합니다. what is asset folderand main folder?
Hirdesh Vishwdewa 2011

3
available ()에서 반환 된 결과를 기반으로 버퍼를 할당하는 것은 Java 문서에 따라 올바르지 않습니다. docs.oracle.com/javase/7/docs/api/java/io/… "일부 InputStream 구현에서는 스트림의 총 바이트 수는 그렇지 않습니다.이 메서드의 반환 값을 사용하여이 스트림의 모든 데이터를 보관할 버퍼를 할당하는 것은 올바르지 않습니다. "
Andrew

@ SiKni8 여기를보십시오 : stackoverflow.com/a/9606629/1536976
Trilarion

-1

이 시도:

JSONObject obj = new JSONObject(yourjsonstring);

yourjsonstring은 무엇입니까? 읽고 싶은 bif 파일이 있습니다.
Aakash Anuj

2
이에 대한 Faizan 답변을 참조하십시오
06:06:12 rekire
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.