Convert JSON to Android Bundle

I want to convert a JSON string to an android bundle package. The requirement was to pass activity parameters directly from the server as JSON, not a package. How to convert JSON string to Android Bundle? Please provide an abstract code if necessary.

+5
source share
3 answers

just ssccee

class A.class

// key for bundle ... public static final JSON_STRING = "jsonString"; Intent intent = new Intent(A.this, B.class); Bundle bundle = new Bundle(); bundle.putString(JSON_STRING,json.toString()); intent.putExtras(bundle); startActivity(intent); 

and then in B.class ...

 Intent intent = getIntent(); Bundle extras = intent.getExtras(); String jsonString = extras.getString(A.JSON_STRING); 

more information about json and java

-2
source
 public static Bundle jsonStringToBundle(String jsonString){ try { JSONObject jsonObject = toJsonObject(jsonString); return jsonToBundle(jsonObject); } catch (JSONException ignored) { } return null; } public static JSONObject toJsonObject(String jsonString) throws JSONException { return new JSONObject(jsonString); } public static Bundle jsonToBundle(JSONObject jsonObject) throws JSONException { Bundle bundle = new Bundle(); Iterator iter = jsonObject.keys(); while(iter.hasNext()){ String key = (String)iter.next(); String value = jsonObject.getString(key); bundle.putString(key,value); } return bundle; } 
+12
source

It's late, but maybe it helps someone find this thread:

 /** Convert a JSON object to a Bundle that can be passed as the extras of * an Intent. It passes each number as a double, and everything else as a * String, arrays of those two are also supported. */ public static Bundle fromJson(JSONObject s) { Bundle bundle = new Bundle(); for (Iterator<String> it = s.keys(); it.hasNext(); ) { String key = it.next(); JSONArray arr = s.optJSONArray(key); Double num = s.optDouble(key); String str = s.optString(key); if (arr != null && arr.length() <= 0) bundle.putStringArray(key, new String[]{}); else if (arr != null && !Double.isNaN(arr.optDouble(0))) { double[] newarr = new double[arr.length()]; for (int i=0; i<arr.length(); i++) newarr[i] = arr.optDouble(i); bundle.putDoubleArray(key, newarr); } else if (arr != null && arr.optString(0) != null) { String[] newarr = new String[arr.length()]; for (int i=0; i<arr.length(); i++) newarr[i] = arr.optString(i); bundle.putStringArray(key, newarr); } else if (!num.isNaN()) bundle.putDouble(key, num); else if (str != null) bundle.putString(key, str); else System.err.println("unable to transform json to bundle " + key); } return bundle; } 
+6
source

Source: https://habr.com/ru/post/1215131/


All Articles