android - what - json tags
Convertir XML a objeto JSON en Android (5)
Acabo de lanzar una biblioteca "XML to JSON" para Android Studio. Es fácil de integrar con Gradle, fácil de usar y configurable.
XmlToJson está disponible en GitHub:
https://github.com/smart-fun/XmlToJson
¡disfrutar!
Tengo una cadena XML como se muestra a continuación:
<s:Envelope
xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"><s:Body><Response
xmlns="http://tempuri.org/"><UserResult><Users xmlns=""><User>
<Message>Success</Message>
<UserId>213213213</UserId>
<FullName>Abc</FullName>
<Roles>
<Role>
<RoleId>23232333</RoleId>
<RoleName>Salesperson</RoleName>
</Role>
</Roles>
</User>
</Users>
</UserResult></Response>
</s:Body>
</s:Envelope>
¿Es posible convertir XML a JSON?
Le sugeriría usar json-lib
, una biblioteca que agrega JSON support to any Java program
. json-lib puede tomar XML y convertirlo en un objeto JSON.
Puedes obtener json-lib here
P.ej.
String xml = "your xml string";
XMLSerializer xmlSerializer = new XMLSerializer();
JSON json = xmlSerializer.read( xml );
Puede convertir xml a objetos jackson, y luego puede usar jackson json.
He intentado agregar el soporte XmlPull a jackson xml. Encuentra el proyecto bifurcado aquí:
https://github.com/finvu/jackson-dataformat-xml
Actualmente, solo es compatible con la versión 2.9.6. (clona la rama jackson-dataformat-xml-2.9.6-XmlPull)
Lo siento, no puedo proporcionar documentación detallada debido a limitaciones de tiempo. Si tienes conocimientos de git y maven para extraer una rama específica y construir el tarro, entonces debería ser relativamente fácil.
La documentación de Jackson xml se puede encontrar en la página de inicio de jackson xml git aquí:
https://github.com/finvu/jackson-dataformat-xml/tree/jackson-dataformat-xml-2.9.6-XmlPull
Puedes intentarlo de esta manera también. Lo he probado y probado yo mismo.
Paso 1: Por favor descarga el java-json.jar
Paso 2: agregue esto a la carpeta /libs
de su proyecto y luego agregue a la ruta de compilación.
Paso 3: entonces utilízalo como sigue
Importaciones a buscar
import org.json.JSONException; import org.json.JSONObject; import org.json.XML;
Cadena de muestra
String sampleXml = "<?xml version=/"1.0/" encoding=/"utf-8/"?>" + "<mobilegate>" +"<timestamp>232423423423</timestamp>" + "<txn>" + "Transaction" + "</txn>" + "<amt>" + 0 + "</amt>" + "</mobilegate>";
Json String
JSONObject jsonObj = null; try { jsonObj = XML.toJSONObject(sampleXml); } catch (JSONException e) { Log.e("JSON exception", e.getMessage()); e.printStackTrace(); } Log.d("XML", sampleXml); Log.d("JSON", jsonObj.toString());
Salida:
XML:
<?xml version="1.0" encoding="utf-8"?><mobilegate><timestamp>232423423423</timestamp><txn>Transaction</txn><amt>0</amt></mobilegate>
JSON:
{"mobilegate":{"timestamp":232423423423,"amt":0,"txn":"Transaction"}}
Underscore-java tiene el método estático U.xmlToJson (xml). Soy el mantenedor del proyecto. Ejemplo vivo
import com.github.underscore.lodash.U;
U.xmlToJson("<a>/n <b></b>/n <b></b>/n</a>");