Java XML a JSON usando XMLSerializer elemento de toma de la raíz de una matriz

AcidHawk:

Teniendo en cuenta que tengo este XML:

<?xml version="1.0" encoding="UTF-8"?>
<Root>
    <op>update</op>
    <path>someString</path>
    <value>12345</value>
</Root>

y quiero que esta salida en JSON:

[{ "op":"update", "path":"someString", "value":"12345" }]

He probado el siguiente código:

package jsonconvertor;
import net.sf.json.JSON;
import net.sf.json.xml.XMLSerializer;

public class JSONConvertor {

    public static void main(String[] args) {

        String input = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><Root><op>update</op><path>someString</path><value>12345</value></Root>";
        String output = "";

        XMLSerializer xml = new XMLSerializer();
        JSON jObj = xml.read( input );
        output = jObj.toString();

        System.out.println("My JSON:\n" + output);
    }
}

Cuando ejecuto el código me da la siguiente respuesta:

{"op":"update","path":"someString","value":"12345"}

Sin embargo, usted notará que el líder '[' y cierre ']' faltan.

Cuando intento cambiar la cadena XML "entrada" en el código a la siguiente:

String input = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><Root class=\"object\"><op>update</op><path>someString</path><value>12345</value></Root>";

Lo cual tiene sentido ya que itRoot era un objeto para empezar, así que intentado cambiar la cadena "de entrada" a "matriz":

String input = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><Root class=\"array\"><op>update</op><path>someString</path><value>12345</value></Root>";

Sin embargo luego me sale el siguiente:

["update","someString","12345"]

¿Qué me estoy perdiendo? Quiero la salida que consigo cuando class = "objeto", sin embargo lo quiero entre corchetes. Quiero que la salida se vea como el ejemplo en la parte superior del poste.

apandey846:

Pruebe con esta cadena de entrada que debería funcionar:

String input = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><Root class=\"array\"><SubRoot class=\"object\"><op>update</op><path>someString</path><value>12345</value></SubRoot></Root>";

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=217783&siteId=1
Recomendado
Clasificación