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
@CiragRaval मैं सहमत हूँ। लेकिन मैं एक फ़ाइल से पढ़ने के लिए json फ़ाइल को कहाँ रखूँ?
आकाश अनुज

अगर आपके पास स्टेटिक जसन फाइल है तो आप उसे अपने प्रोजेक्ट में एसेट्स और रॉ फोल्डर के अंदर रख सकते हैं लेकिन अगर आप डायनामिक रूप से
जसन

2
@ आकाश: अनुज फैजान जवाब देखें और आपको संपत्ति फ़ोल्डर में फ़ाइल
डालें

16
न जाने क्यों यह बंद था। सवाल मुझे पूरी तरह से स्पष्ट और सटीक लगता है। 1) एंड्रॉइड ऐप को विकसित करते समय json डेटा फाइलें कहां संग्रहीत होती हैं। 2) मैं उस डेटा को कैसे पढ़ूं? निश्चित रूप से, इसे दो प्रश्नों में विभाजित किया जा सकता है, लेकिन दो प्रश्न बहुत संबंधित हैं (आप एक के बिना एक का उपयोग कभी नहीं करेंगे) एक व्यक्ति दोनों को भी पूछ सकता है, जो आकाशवाणी ने किया था। इसके अलावा, @ फैजान ने इसका जवाब देने में बहुत अच्छा काम किया, जो "अचूक" शिकायत को अमान्य करता है। फैसले? मान्य प्रश्न
एसएमबीजीएस

जवाबों:


210

उस फ़ाइल को संपत्ति में रखें

एंड्रॉइड स्टूडियो प्रोजेक्ट में बनाई गई परियोजना के लिए आपको मुख्य फ़ोल्डर के तहत संपत्ति फ़ोल्डर बनाने की आवश्यकता है।

उस फ़ाइल को इस रूप में पढ़ें:

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 प्राप्त करने का कोई तरीका है?
हिरेन दबी

मैं वेब लिंक से JSON फ़ाइल कैसे पढ़ सकता हूं?
Si8

7
एंड्रॉइड स्टूडियो प्रोजेक्ट में बनाई गई परियोजना के लिए आपको मुख्य फ़ोल्डर के तहत संपत्ति फ़ोल्डर बनाने की आवश्यकता है asset folderऔर क्या है main folder?
हिरदेश विश्वदेव

3
उपलब्ध परिणामों के आधार पर बफर आवंटित करना () जावा डॉक्स के अनुसार गलत है: docs.oracle.com/javase/7/docs/api/java/io/… "ध्यान दें कि जबकि InputStream के कुछ कार्यान्वयन वापस आ जाएंगे। स्ट्रीम में बाइट्स की कुल संख्या, कई नहीं होगी। इस स्ट्रीम में सभी डेटा रखने के लिए एक बफर को आवंटित करने के लिए इस पद्धति के रिटर्न वैल्यू का उपयोग करना कभी भी सही नहीं होगा। "
एंड्रयू

@ SiKni8 यहां देखें: stackoverflow.com/a/9606629/1536976
त्रैमासिक

-1

इसे इस्तेमाल करे:

JSONObject obj = new JSONObject(yourjsonstring);

आपका क्या है? मेरे पास एक bif फ़ाइल है जिसमें से मैं पढ़ना चाहता हूं।
आकाश अनुज

2
उसके लिए
फैजान का
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.