¿Cuál es la mejor manera de combinar (fusionar) 2 JSONObjects?
¿Cuál es la mejor manera de combinar (combinar) dos JSONObjects
?
JSONObject o1 = { "one": "1", "two": "2", "three": "3" } JSONObject o2 = { "four": "4", "five": "5", "six": "6" }
Y el resultado de combinar o1
y o2
debe ser
- AFNetworking para Android
- Android - ¿cómo agregar el objeto JSON a sharedPreferences?
- Cómo configurar el encabezado de solicitud para enviar datos desde aplicaciones de Android a nuestro servidor
- Cómo publicar el progreso para el análisis de archivos json de gran tamaño con GSON
- Java.lang.String no se puede convertir a JSONObject desde Android
JSONObject result = { "one": "1", "two": "2", "three": "3", "four": "4", "five": "5", "six": "6" }
- ¿Está google gson funcionando en android?
- Cómo pasar cadena en 'Body' Parámetro de Retrofit 2 en android
- Retrofit con un servicio de la vieja escuela
- E / Volley: BasicNetwork.performRequest: Código de respuesta inesperado 307 para url
- Error de puntero nulo en la tarea asíncrona
- Diseño como la aplicación HotStar
- Crear objeto de la cadena Gson no funciona
- ¿Cómo puedo eliminar un elemento específico de un JSONArray?
Tengo su mismo problema: No puedo encontrar el método putAll
(y no aparece en la página de referencia oficial ).
Por lo tanto, no sé si esta es la mejor solución, pero seguramente funciona bastante bien:
//I assume that your two JSONObjects are o1 and o2 JSONObject mergedObj = new JSONObject(); Iterator i1 = o1.keys(); Iterator i2 = o2.keys(); String tmp_key; while(i1.hasNext()) { tmp_key = (String) i1.next(); mergedObj.put(tmp_key, o1.get(tmp_key)); } while(i2.hasNext()) { tmp_key = (String) i2.next(); mergedObj.put(tmp_key, o2.get(tmp_key)); }
Ahora, el JSONObject combinado se almacena en mergedObj
Json se fusionen en ese nuevo objeto json como este.
JSONObject jObj = new JSONObject(); jObj.put("one", "1"); jObj.put("two", "2"); JSONObject jObj2 = new JSONObject(); jObj2.put("three", "3"); jObj2.put("four", "4"); JSONParser p = new JSONParser(); net.minidev.json.JSONObject o1 = (net.minidev.json.JSONObject) p .parse(jObj.toString()); net.minidev.json.JSONObject o2 = (net.minidev.json.JSONObject) p .parse(jObj2.toString()); o1.merge(o2); Log.print(o1.toJSONString());
Ahora o1 será el objeto json fusionado. Obtendrá el resultado como esto ::
{"three":"3","two":"2","four":"4","one":"1"}
Por favor consulte este enlace y descargue la biblioteca smartjson .. aquí está el enlace http://code.google.com/p/json-smart/wiki/MergeSample
Espero que ayude
Qué tal esto:
Iterator iterator = json2.keys(); while(iterator.hasNext()){ String key = iterator.next().toString(); json1.put(key,map.optJSONObject(key)); }
Prueba esto .. espero que ayude
JSONObject result = new JSONObject(); result.putAll(o1); result.putAll(O2);
- La sincronización de Gradle falló: falló al encontrar las herramientas de compilación revisión 24.0.0 rc1
- Android editar contacto