दिलचस्प पोस्ट
लिनक्स घड़ी पर मिलीसेकंड का समय प्राप्त करने के लिए सी + + ठीक से काम नहीं करता टुकड़ा से कस्टम एक्शनबार शीर्षक सेट करना dplyr फिल्टर: कम से कम चर के साथ पंक्तियाँ प्राप्त करें, लेकिन केवल पहले अगर बहुत से मिनिमा नोड.जेएस में समानांतर निष्पादन समन्वयित करना सी # से लाइन टिप्पणियों को पट्टी करने के लिए Regex क्या नये सी ++ 11 प्रोग्रामों के लिए पिछला रिटर्न टाइप वाक्यविन्यास शैली डिफ़ॉल्ट होनी चाहिए? मैं मौजूदा निर्देशिका में पायथन के माध्यम से फ़ाइलों की संपूर्ण निर्देशिका की प्रतिलिपि कैसे बनाऊं? क्लाइंट साइड जावास्क्रिप्ट फ़ंक्शन से सर्वर कोड के पीछे कोड कैसे कॉल करें? मेमोरी से बाहर जावा हीप अंतरिक्ष एक टुकड़ा और एक गतिविधि के बीच संचार – सर्वोत्तम अभ्यास कैसे अजगर की सॉकेट recv विधि पर टाइमआउट सेट करने के लिए? विशिष्ट पंक्तियों के लिए MYSQL राशि () PHP में पाठ से यूआरएल निकालें तत्वों को एक सदिश में कैसे सम्मिलित करें? पायथन 3: अनबाउंड लोकल त्रुटि: असाइनमेंट से पहले संदर्भित स्थानीय चर

Android में JSON Array (जेसन ऑब्जेक्ट नहीं) को कैसे पार्स करना है

मुझे एक समस्या है जिस तरह से JSONArray को पार्स करना है यह इस तरह दिख रहा है:

[{"name":"name1","url":"url1"},{"name":"name2","url":"url2"},...] 

मुझे पता है कि यह कैसे पार्स करना है अगर JSON अलग लिखा गया था (दूसरे शब्दों में, अगर मुझे ऑब्जेक्ट के सरणी के बजाय json ऑब्जेक्ट दिया गया था) लेकिन यह मेरे पास है और इसके साथ जाना होगा।

* संपादित करें: यह एक मान्य json है मैंने इस जेएसएन का इस्तेमाल करते हुए एक आईफोन ऐप बनाया है, अब मुझे इसे एंड्रॉइड के लिए करना है और इसे समझ में नहीं आ रहा है। वहाँ बहुत सारे उदाहरण हैं, लेकिन वे सभी JSONObject संबंधित हैं। मुझे जेसनअरेरे के लिए कुछ चाहिए

क्या कोई मुझे कुछ संकेत, या ट्यूटोरियल या एक उदाहरण दे सकता है?

बहुत सराहना की !

वेब के समाधान से एकत्रित समाधान "Android में JSON Array (जेसन ऑब्जेक्ट नहीं) को कैसे पार्स करना है"

JsonArray को पार्स करने के लिए निम्नलिखित स्निपेट का उपयोग करें।

 JSONArray jsonarray = new JSONArray(jsonStr); for (int i = 0; i < jsonarray.length(); i++) { JSONObject jsonobject = jsonarray.getJSONObject(i); String name = jsonobject.getString("name"); String url = jsonobject.getString("url"); } 

आशा करता हूँ की ये काम करेगा।

मैं थोड़ा जैक्सन उदाहरण देता हूँ:

पहले एक डेटा धारक बनाओ जिसमें जेएसओएन स्ट्रिंग से खेतों हैं

 // imports // ... @JsonIgnoreProperties(ignoreUnknown = true) public class MyDataHolder { @JsonProperty("name") public String mName; @JsonProperty("url") public String mUrl; } 

और MyDataHolders की पार्स सूची

 String jsonString = // your json ObjectMapper mapper = new ObjectMapper(); List<MyDataHolder> list = mapper.readValue(jsonString, new TypeReference<ArrayList<MyDataHolder>>() {}); 

सूची आइटम का उपयोग करना

 String firstName = list.get(0).mName; String secondName = list.get(1).mName; 
 public static void main(String[] args) throws JSONException { String str = "[{\"name\":\"name1\",\"url\":\"url1\"},{\"name\":\"name2\",\"url\":\"url2\"}]"; JSONArray jsonarray = new JSONArray(str); for(int i=0; i<jsonarray.length(); i++){ JSONObject obj = jsonarray.getJSONObject(i); String name = obj.getString("name"); String url = obj.getString("url"); System.out.println(name); System.out.println(url); } } 

आउटपुट:

 name1 url1 name2 url2 

ऑब्जेक्ट को पकड़ने के लिए एक क्लास बनाएं

 public class Person{ private String name; private String url; //Get & Set methods for each field } 

फिर deserialize निम्नानुसार है:

 Gson gson = new Gson(); Person[] person = gson.fromJson(input, Person[].class); //input is your String 

संदर्भ आलेख: http://blog.patrickbaumann.com/2011/11/gson-array-deserialization/

इस उदाहरण में एक जेसन सरणी के अंदर कई ऑब्जेक्ट हैं। अर्थात्,

यह जेसन सरणी है: [{"नाम": "नाम 1", "url": "url1"}, {"name": "name2", "url": "url2"}, …]

यह एक ऑब्जेक्ट है: {"name": "name1", "url": "url1"}

यह मानते हुए कि आपको स्ट्रिंग वेरिएबल का परिणाम मिला है जिसका नाम jSonResultString है:

 JSONArray arr = new JSONArray(jSonResultString); //loop through each object for (int i=0; i<arr.length(); i++){ JSONObject jsonProductObject = arr.getJSONObject(i); String name = jsonProductObject.getString("name"); String url = jsonProductObject.getString("url"); } 

@ साइबेरा इस उदाहरण को देखें। यह आपकी मदद कर सकता है

 public class CustomerInfo { @SerializedName("customerid") public String customerid; @SerializedName("picture") public String picture; @SerializedName("location") public String location; public CustomerInfo() {} } 

और जब आपको परिणाम मिलता है; इस तरह पार्स

 List<CustomerInfo> customers = null; customers = (List<CustomerInfo>)gson.fromJson(result, new TypeToken<List<CustomerInfo>>() {}.getType()); 

कुछ महान सुझाव पहले ही उल्लेख किए गए हैं वास्तव में जीएसओएन का प्रयोग करना वास्तव में आसान है, और जीवन को आसान बनाने के लिए आप इस वेबसाइट का प्रयास कर सकते हैं इसे जसॉनस्केमा 2 पीोजो कहा जाता है और यह बिल्कुल ठीक करता है:

आप इसे अपना जेसन देते हैं और यह एक जावा ऑब्जेक्ट उत्पन्न करता है जो आपकी प्रोजेक्ट में पेस्ट कर सकता है। आप अपने चर को एनोटेट करने के लिए जीएसओएन का चयन कर सकते हैं, इसलिए ऑब्जेक्ट को अपने जेएसओ से निकालने से भी आसान हो जाता है!

मेरा उदाहरण सर्वर उदाहरण से लोड ..

 int jsonLength = Integer.parseInt(jsonObject.getString("number_of_messages")); if (jsonLength != 1) { for (int i = 0; i < jsonLength; i++) { JSONArray jsonArray = new JSONArray(jsonObject.getString("messages")); JSONObject resJson = (JSONObject) jsonArray.get(i); //addItem(resJson.getString("message"), resJson.getString("name"), resJson.getString("created_at")); } 

आशा है कि यह मदद करेगा

  URL url = new URL("your URL"); connection = (HttpURLConnection) url.openConnection(); connection.connect(); InputStream stream = connection.getInputStream(); BufferedReader reader; reader = new BufferedReader(new InputStreamReader(stream)); StringBuffer buffer = new StringBuffer(); String line = ""; while ((line = reader.readLine()) != null) { buffer.append(line); } //setting the json string String finalJson = buffer.toString(); //this is your string get the pattern from buffer. JSONArray jsonarray = new JSONArray(finalJson); 

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

 s = '[{"name":"name1","url":"url1"},{"name":"name2","url":"url2"}]'; eval("array=" + s); for (var i = 0; i < array.length; i++) { for (var index in array[i]) { alert(array[i][index]); } 

}