2009-12-30 26 views
6

तो मैं इस JSON, जो तब मेरी गतिविधि एक स्ट्रिंग को पुन: प्राप्त करता है:,पार्स JSON

{"popular": 
     {"authors_last_month": [ 
     { 
      "url":"http://activeden.net/user/OXYLUS", 
      "item":"OXYLUS", 
      "sales":"1148", 
      "image":"http://s3.envato.com/files/15599.jpg" 
     }, 
     { 
      "url":"http://activeden.net/user/digitalscience", 
      "item":"digitalscience", 
      "sales":"681", 
      "image":"http://s3.envato.com/files/232005.jpg" 
     } 
     { 
      ... 
     } 
     ], 
     "items_last_week": [ 
     { 
      "cost":"4.00", 
      "thumbnail":"http://s3.envato.com/files/227943.jpg", 
      "url":"http://activeden.net/item/christmas-decoration-balls/75682", 
      "sales":"43", 
      "item":"Christmas Decoration Balls", 
      "rating":"3", 
      "id":"75682" 
     }, 
     { 
      "cost":"30.00", 
      "thumbnail":"http://s3.envato.com/files/226221.jpg", 
      "url":"http://activeden.net/item/xml-flip-book-as3/63869", 
      "sales":"27", 
      "item":"XML Flip Book/AS3", 
      "rating":"5", 
      "id":"63869" 
     }, 
     { 
      ... 
     }], 
     "items_last_three_months": [ 
     { 
      "cost":"5.00", 
      "thumbnail":"http://s3.envato.com/files/195638.jpg", 
      "url":"http://activeden.net/item/image-logo-shiner-effect/55085", 
      "sales":"641", 
      "item":"image logo shiner effect", 
      "rating":"5", 
      "id":"55085" 
     }, 
     { 
      "cost":"15.00", 
      "thumbnail":"http://s3.envato.com/files/180749.png", 
      "url":"http://activeden.net/item/banner-rotator-with-auto-delay-time/22243", 
      "sales":"533", 
      "item":"BANNER ROTATOR with Auto Delay Time", 
      "rating":"5", 
      "id":"22243"}, 
     { 
      ... 
     }] 
    } 
} 

यह here रूप में अच्छी तरह पहुँचा जा सकता है क्योंकि हालांकि यह यह काफी एक लंबी स्ट्रिंग है, मैं जो आवश्यक है उसे प्रदर्शित करने के लिए उपर्युक्त नीचे छंटनी की है।

असल में, मैं "items_last_week" से आइटम का उपयोग और उनमें से एक सूची बनाने के लिए सक्षम होना चाहते हैं - मूल रूप से मेरी योजना 'आइटम' यह करने के लिए अगले के साथ छोड़ दिया पर 'झलक' के लिए था, लेकिन से आज एसडीके के साथ खेलना यह बहुत मुश्किल या असंभव प्रतीत होता है, इसलिए मैं सूची में 'item_last_week' से 'आइटम' डेटा रखने से खुश हूं।

php से आ रहा है मैं जावा में उपलब्ध किसी भी JSON पुस्तकालयों का उपयोग करने के लिए संघर्ष कर रहा हूं, क्योंकि यह कोड की एक पंक्ति से कहीं अधिक है जो मुझे deserialize करने की आवश्यकता होगी (मुझे लगता है कि यह सही शब्द है) JSON, और उन सभी को JSONArray/JSONObject स्क्रिप्ट के अलावा, अतिरिक्त वर्ग के कुछ रूपों की आवश्यकता होती है, जो इस तथ्य को पसंद नहीं करते हैं कि item_last_week नेस्टेड किया गया है (फिर, मुझे लगता है कि यह JSON शब्दावली है) और एक बहुत लंबा समय लगता है एंड्रॉइड एमुलेटर पर चलाने के लिए समय।

तो, असल में, मुझे आइटम्स_last_week डेटा को ListView में पास करने के लिए एक (अधिमानतः सरल) तरीका चाहिए। मैं समझता हूं कि मुझे एक कस्टम एडाप्टर की आवश्यकता होगी जिसे मैं शायद अपने सिर को चारों ओर प्राप्त कर सकूं लेकिन मुझे समझ में नहीं आ रहा है, इससे कोई फर्क नहीं पड़ता कि मैंने कितना दिन इसे समझने की कोशिश की है, JSON स्ट्रिंग के कुछ हिस्सों तक कैसे पहुंचे ..

+0

आप Json मदद की आवश्यकता है? फिर आप अपने प्रश्न में जेसन टैग जोड़ सकते हैं। – tbruyelle

+0

एक "जावा" टैग भी उचित होगा। –

उत्तर

9

मूल रूप से मेरी योजना 'आइटम' के साथ बाईं तरफ 'झलक' यह करने के लिए अगले करने के लिए गया था, लेकिन आज एसडीके के साथ चारों ओर खेलने से यह प्रतीत होता है भी मुश्किल या असंभव इस लक्ष्य को हासिल करने के लिए

यह असंभव से बहुत दूर है, लेकिन यह सही होने के लिए कठिन होगा, जब तक कि y कहां something that already wraps up that pattern आपके लिए उपयोग करें (और उम्मीद है कि उचित रूप से "सही" है)। वेब पर, प्रदर्शन/बैंडविड्थ मुद्दे उपयोगकर्ता की समस्या थी - मोबाइल में, वे आपकी समस्या हैं।

के रूप में यह कोड का एक लाइन जो मैं deserialize करने की आवश्यकता होगी की तुलना में अधिक प्रतीत होता है (मुझे लगता है कि सही शब्द है) JSON

new JSONObject(data) कोड की एक पंक्ति है। अब, जेएसओएन लाने, जो मुझे लगता है कि आप उपर्युक्त यूआरएल से कर रहे हैं, कोड की कई पंक्तियां होंगी। न तो JSON की पार्सिंग और न ही इंटरनेट से इसे लाने से एंड्रॉइड के लिए अद्वितीय है - यह सब डेस्कटॉप जावा ऐप, या जावा सर्वलेट, या जो भी हो, पर दिखाई देगा।

अलग JSONArray/JSONObject स्क्रिप्ट मेरे पास है जो तथ्य यह है कि items_last_week नीडिंत है

मैं अपनी फ़ाइल प्रदर्शित की तरह संरचनाओं के साथ JSON को पार्स एक समस्या नहीं पड़ा है पसंद नहीं करता से

। इसके अलावा, यह एंड्रॉइड के लिए शायद ही अद्वितीय है - JSON पार्सर का उपयोग कई अन्य जावा-आधारित परियोजनाओं में किया जाता है।

और एक भयंकर लंबे समय पर Android एमुलेटर

एमुलेटर की गति से चलाने के लिए ले जाता है अपने विकास मशीन की गति से जुड़ा हुआ है। मेरे लिए, एमुलेटर आमतौर पर वास्तविक फोन हार्डवेयर से धीमा होता है ... और मेरा डेस्कटॉप क्वाड-कोर है। ध्यान रखें कि एमुलेटर आपके पीसी पर चल रहे एआरएम चिपसेट होने का नाटक कर रहा है, एआरएम ऑपकोड्स को फ्लाई पर x86 ओपकोड्स में परिवर्तित कर रहा है, इसलिए यह तेज़ नहीं होगा और कई कोरों का लाभ नहीं उठाएगा।

तो, प्रभाव में, मैं एक (अधिमानतः सरल) जिस तरह से एक ListView को items_last_week डेटा पास करने की जरूरत है।

कुछ भी नहीं वास्तव में एंड्रॉयड में निर्मित मनमाने ढंग से डेटा के साथ, एक मनमाना JSON संरचना लेते हैं, और सीधे एक ListView में डाल करने के लिए नहीं है। यह जेएसओएन के लिए अद्वितीय नहीं है - एक्सएमएल इसी तरह की घटना प्रदर्शित करेगा।

आपके विकल्प हैं:

  1. एक कस्टम ListAdapter कि पार्स JSON लपेटता बनाएँ।
  2. पार्स किए गए JSON को MatrixCursor (डेटा की 2 डी सरणी सोचें) में कनवर्ट करें और SimpleCursorAdapter का उपयोग करें।
  3. पार्स किए गए JSON को ArrayList<String> में कनवर्ट करें और ArrayAdapter का उपयोग करें।

अल्प अवधि के लिए, विकल्प # 3 शायद सबसे सरल है।

मैं समझता हूँ कि मैं एक कस्टम एडाप्टर जो मैं शायद चारों ओर मेरी सिर प्राप्त कर सकते हैं की आवश्यकता होगी, लेकिन मैं कोई बात नहीं समझ में नहीं आता, , दिन मैं गया है सिर्फ खर्च यह पता लगाने की कोशिश की है कि कितना JSON स्ट्रिंग के कुछ हिस्सों तक कैसे पहुंचे ..

और यह प्रश्न सहायता के तरीके में बहुत अधिक अस्पष्ट है। आप जावा और जेएसओएन के लिए टैग किए गए एक अलग प्रश्न को खोलने पर विचार कर सकते हैं, जहां आप json.org पार्सर के साथ समस्याएं कहां हैं, इस बारे में जानकारी प्राप्त करते हैं।

+0

ओपी के सवाल का बहुत अच्छा टूटना। संक्षिप्त और साथ-साथ भाग-अंश-उत्तर/विश्लेषण। –

1

मैंने वास्तव में इसके बारे में अभी एक प्रश्न का उत्तर दिया। JSON को संभालने के लिए कस्टम एडाप्टर के लिए बहुत ही सरल कोड के लिए इसे देखें।

JSONAdapter

संबंधित मुद्दे