<घंटा/>
यह उदाहरण दर्शाता है कि कोटलिन का उपयोग करके Android पर JSON ऑब्जेक्ट्स को कैसे पार्स किया जाए।
चरण 1 - एंड्रॉइड स्टूडियो में एक नया प्रोजेक्ट बनाएं, फाइल ⇒ न्यू प्रोजेक्ट पर जाएं और एक नया प्रोजेक्ट बनाने के लिए सभी आवश्यक विवरण भरें।
चरण 2 - निम्न कोड को res/layout/activity_main.xml में जोड़ें।
चरण 3 - एक नया एसेट फोल्डर बनाएं और एक user_list.json फाइल और नीचे दिए गए कोड को बनाएं।
{ "users":[ { "name":"Niyaz", "email":"[email protected]", "contact":{ "mobile":"+91 0000000000" } }, { "name ":"अज़हर", "ईमेल":"[email protected]", "contact":{ "mobile":"+91 0000000000" } }, { "name":"Mahi", "email":"testemail3 @gmail.com", "संपर्क":{ "मोबाइल":"+91 0000000000" } } ]}
चरण 4 - निम्न कोड को src/MainActivity.kt में जोड़ें
<पूर्व>आयात android.os.Bundleimport androidx.appcompat.app.AppCompatActivityimport androidx.recyclerview.widget.LinearLayoutManagerimport androidx.recyclerview.widget.RecyclerViewimport org.json.JSONExceptioncharimport org.json.JSONObjectimport java.io.IOException.import java.nio.IOException.import .Charsetclass MainActivity:AppCompatActivity() { var personName:ArrayList =ArrayList() var emailId:ArrayList =ArrayList() var mobileNumbers:ArrayList =ArrayList() क्रिएट पर फन को ओवरराइड करें (savedInstanceState:Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) शीर्षक ="कोटलिनएप" वैल रिसाइक्लर व्यू =findViewById(R.id.recyclerView) वैल लाइनरलेआउटमैनेजर =लीनियरलाउटमैनेजर (एप्लीकेशन कॉन्टेक्स्ट) रिसाइक्लर व्यू। =JSONObject (loadJSONFromAsset ()) वैल userArray =obj.getJSONArray ("उपयोगकर्ता") के लिए (i 0 में userArray.length () तक) { वैल यूजरडिटेल =userArray.getJSONObject (i) personName.add (userDetail.getString("name")) emailId.add(userDetail.getString("email")) val contact =userDetail.getJSONObject("contact") mobileNumbers.add (contact.getString("mobile")) } } कैच (e:JSONException) { e.printStackTrace() } val customAdapter =CustomAdapter(this@MainActivity, personName, emailId, mobileNumbers) recyclerView.adapter =customAdapter} निजी मज़ा लोडJSONFromAsset( ):स्ट्रिंग {वैल जेसन:स्ट्रिंग? कोशिश करें { वैल इनपुटस्ट्रीम =एसेट्स। =स्ट्रिंग (बफर, चारसेट)} कैच (उदा:IOException) { ex.printStackTrace () रिटर्न "" } रिटर्न json }}
चरण 5 - एक नया वर्ग CustomAdapter.kt बनाएँ और निम्नलिखित कोड जोड़ें -
<पूर्व>आयात android.content.Contextimport android.view.LayoutInflaterimport android.view.Viewimport android.view.ViewGroupimport android.widget.TextViewimport android.widget.Toastimport androidx.recyclerview.widget.RecyclerViewimport androidx.recyclerview.widget.RecyclerView.View. java.util.*class CustomAdapter (निजी संस्करण संदर्भ:प्रसंग, निजी var व्यक्तिनाम:ArrayList, निजी var ईमेल आईडी:ArrayList, निजी var mobileNumbers:ArrayList):RecyclerView.Adapter () {ओवरराइड फन ऑनक्रिएट व्यूहोल्डर (पैरेंट:व्यूग्रुप, व्यू टाइप:इंट):MyViewHolder {वैल v =LayoutInflater.from(parent.context).inflate(R.layout.rowlayout, parent, false) रिटर्न MyViewHolder(v)} ओवरराइड फन onBindViewHolder (धारक:MyViewHolder, स्थिति:Int) {// आइटम धारक में डेटा सेट करें। // आइटम दृश्य पर setOnClickListener ईवेंट लागू करें। Holder.itemView.setOnClickListener {// आइटम पर व्यक्ति के नाम के साथ एक टोस्ट प्रदर्शित करें टोस्ट पर क्लिक करें। } आंतरिक वर्ग MyViewHolder(itemView:View) :ViewHolder(itemView) { var नाम:TextView =itemView.findViewById(R.id.tvName) TextView var ईमेल के रूप में:TextView =itemView.findViewById(R.id .tvEmail) TextView var mobileNo:TextView =itemView.findViewById(R.id.tvMobile) as TextView }}
चरण 6 - एक लेआउट संसाधन फ़ाइल row.xml बनाएं और निम्न कोड जोड़ें