दिलचस्प पोस्ट
ओपनजीएल में "तात्कालिक मोड" का क्या अर्थ है? सीएसएस गुण: प्रदर्शन बनाम दृश्यता एक्सएमएल स्किमा मिन ओककर्स / मैक्स ओकेर्स डिफ़ॉल्ट मान मैं वर्डप्रेस में एक सरल jQuery स्क्रिप्ट कैसे जोड़ूं? कैसे करें: सी # में कमांड लाइन निष्पादित करें, एसटीडी आउट परिणाम प्राप्त करें आप एक प्रोग्राम और 'पोस्ट' को एक वेब पेज कैसे प्रोग्राम में भरते हैं? जीआईटी ऑटोक्रॉल्फ सेटिंग्स के लिए निश्चित सिफारिश क्या आप हर चीज का चयन कर सकते हैं, लेकिन 1 या 2 फ़ील्ड, लेखक के ऐंठन के बिना? JSON को DataTable में कनवर्ट करें एप में म्यूपीडीएफ रीडर को एकीकृत करें ट्री कार्यान्वयन जावा ऑब्जेक्ट्स को अब और कुछ करने के लिए सेट करना है? मैं किसी मानक तरीके से प्रमुख स्थान / अग्रणी सफेद स्थान को कैसे ट्रिम कर सकता हूं? JQuery का उपयोग कर छवि स्रोत बदलना फ़ाइलों को प्रोग्रामेटिक रूप से अनजिप करें .net

जेसन अर्रे को सामान्य जावा एरे में कनवर्ट करें

क्या एक तरीका है जेसन अर्रे को सामान्य जावा एरे को एंड्रॉइड लिस्ट्यूव्यू डेटा बाइंडिंग के लिए परिवर्तित करना है?

वेब के समाधान से एकत्रित समाधान "जेसन अर्रे को सामान्य जावा एरे में कनवर्ट करें"

 ArrayList<String> list = new ArrayList<String>(); JSONArray jsonArray = (JSONArray)jsonObject; if (jsonArray != null) { int len = jsonArray.length(); for (int i=0;i<len;i++){ list.add(jsonArray.get(i).toString()); } } 

यदि आपके पास पहले से कोई JSONArray ऑब्जेक्ट नहीं है, तो कॉल करें

 JSONArray jsonArray = new JSONArray(jsonArrayString); 

उसके बाद बस उस के माध्यम से पाश, अपने खुद के सरणी का निर्माण। यह कोड मानता है कि यह तारों की एक सरणी है, अपने विशेष सरणी संरचना के अनुरूप इसे संशोधित करना कठिन नहीं होना चाहिए।

 List<String> list = new ArrayList<String>(); for (int i=0; i<jsonArray.length(); i++) { list.add( jsonArray.getString(i) ); } 

हो सकता है कि यह केवल एक कामकाज (बहुत कुशल नहीं) है लेकिन आप ऐसा कुछ कर सकते हैं:

String[] resultingArray = yourJSONarray.join(",").split(",");

जाहिर है आप ' , ' विभाजक को अपनी पसंद के कुछ भी बदल सकते हैं (मेरे ईमेल पते के JSONArray थे)

बंडल-इन org.json लाइब्रेरी का उपयोग करने के बजाय, जैक्सन या जीएसओएन का उपयोग करने की कोशिश करें, जहां यह एक-लाइनर है। जैक्सन के साथ, f.ex:

 List<String> list = new ObjectMapper().readValue(json, List.class); // Or for array: String[] array = mapper.readValue(json, String[].class); 

किसी ArrayList<String> String[] बजाय String[] का उपयोग कर सकते हैं:

यह स्मृति ओवरहेड को कम कर देगा कि एक ArrayList है

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

 String[] stringsArray = new String[jsonArray.length()]; for (int i = 0; i < jsonArray.length; i++) { parametersArray[i] = parametersJSONArray.getString(i); } 

मुझे पता है कि प्रश्न JSONArray के बारे में है, लेकिन यहां उदाहरण मैंने पाया है कि आपको JSONAbject से वस्तुओं को निकालने के लिए JSONArray का उपयोग करने की आवश्यकता नहीं है।

 import org.json.simple.JSONObject; import org.json.simple.JSONValue; String jsonStr = "{\"types\":[1, 2]}"; JSONObject json = (JSONObject) JSONValue.parse(jsonStr); List<Long> list = (List<Long>) json.get("types"); if (list != null) { for (Long s : list) { System.out.println(s); } } 

तार की सरणी के साथ भी काम करता है

यह करने का एक बेहतर तरीका है: अगर आपको एपीआई से डाटा मिल रहा है फिर PARSE को JSON और इसे अपने listview पर लोड कर रहा है:

 protected void onPostExecute(String result) { Log.v(TAG + " result); if (!result.equals("")) { // Set up variables for API Call ArrayList<String> list = new ArrayList<String>(); try { JSONArray jsonArray = new JSONArray(result); for (int i = 0; i < jsonArray.length(); i++) { list.add(jsonArray.get(i).toString()); }//end for } catch (JSONException e) { Log.e(TAG, "onPostExecute > Try > JSONException => " + e); e.printStackTrace(); } adapter = new ArrayAdapter<String>(ListViewData.this, android.R.layout.simple_list_item_1, android.R.id.text1, list); listView.setAdapter(adapter); listView.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { // ListView Clicked item index int itemPosition = position; // ListView Clicked item value String itemValue = (String) listView.getItemAtPosition(position); // Show Alert Toast.makeText( ListViewData.this, "Position :" + itemPosition + " ListItem : " + itemValue, Toast.LENGTH_LONG).show(); } }); adapter.notifyDataSetChanged(); adapter.notifyDataSetChanged(); ... 

हम रूपांतरण से शुरू करते हैं [JSONArray -> सूची <JSONObject>]

 public static List<JSONObject> getJSONObjectListFromJSONArray(JSONArray array) throws JSONException { ArrayList<JSONObject> jsonObjects = new ArrayList<>(); for (int i = 0; i < (array != null ? array.length() : 0); jsonObjects.add(array.getJSONObject(i++)) ); return jsonObjects; } 

अगली पीआरजेओ के साथ array.getJSONObject (i ++) की जगह सामान्य संस्करण बनाएं

उदाहरण :

 public <T> static List<T> getJSONObjectListFromJSONArray(Class<T> forClass, JSONArray array) throws JSONException { ArrayList<Tt> tObjects = new ArrayList<>(); for (int i = 0; i < (array != null ? array.length() : 0); tObjects.add( (T) createT(forClass, array.getJSONObject(i++))) ); return tObjects; } private static T createT(Class<T> forCLass, JSONObject jObject) { // instantiate via reflection / use constructor or whatsoever T tObject = forClass.newInstance(); // if not using constuctor args fill up // // return new pojo filled object return tObject; } 

आप एक String[] उपयोग करके एक ArrayList<String> उपयोग कर सकते हैं:

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

  private String[] getStringArray(JSONArray jsonArray) throws JSONException { if (jsonArray != null) { String[] stringsArray = new String[jsonArray.length()]; for (int i = 0; i < jsonArray.length(); i++) { stringsArray[i] = jsonArray.getString(i); } return stringsArray; } else return null; } 

कैसे java.util.Arrays का उपयोग करने के बारे में?

 List<String> list = Arrays.asList((String[])jsonArray.toArray())