Transforme JSONArray en una matriz de JSONObject

Tengo JSONArray como a continuación:

[["title","details"],["abc","xyz"],["abc2","xyz2"]]

¿Cómo transformar en Array of JSONObject como se muestra a continuación usando Java / JavaScript?

[ { 'title': abc,  'details':xyz,}, {'title': abc2, 'details':xyz2}]
Respuesta 1

El código a continuación se modificó de la solución aquí para permitir que se pasen múltiples matrices de valores.

function makeObject(keys, array) {
    var output = [];
    for (var o = 0; o < array.length; o++) {
        var object = {};
        for (var i = 0; i < array[o].length; i ++ ) {
         object[keys[i]] = array[o][i];
        }
        output.push(object);
    }
    return output;
}

// input array
var array = [["title","details"],["abc","xyz"],["abc2","xyz2"]];    

// extract keys leaving only values in array
var keys = array.shift();

// build object
var output = makeObject(keys, array);

Ejemplo: http://jsfiddle.net/u54tT/1/

Respuesta: 2

He encontrado una solución para esto por ahora. Todavía estoy buscando una función incorporada o una implementación concreta sobre esto.

String inputStr = "[[\"title\",\"details\"],[\"abc\",\"xyz\"],[\"abc2\",\"xyz2\"]]";

try {
    JSONArray inputArray = new JSONArray(inputStr);
    JSONArray outputArray = new JSONArray();

    for (int i = 0; i < inputArray.length(); i++) {
        JSONArray inArr = inputArray.getJSONArray(i);
        for (int j = 0; j < inArr.length(); j++) {
            if (i != 0) {
                outputArray.put(new JSONObject().put(
                        inputArray.getJSONArray(0).getString(j), inArr.get(j)));
            }
        }
    }
    System.out.println("outputArray = " + outputArray.toString());
} catch (JSONException jse) {
    System.out.println("jse = " + jse.toString());
}

Salida:

outputArray = [{"title":"abc"},{"details":"xyz"},{"title":"abc2"},{"details":"xyz2"}]
Respuesta: 3

Si entendí la tarea correctamente, no hay ningún método que funcione, ya que parece ser un caso poco trivial. Entonces deberías escribir tu propia transformación ...

Respuesta: 4

Quiero firmar dos docenas de archivos jar usando jarsigner, dando la contraseña solo una vez. No es posible dar múltiples archivos a jarsigner, de acuerdo con la página del manual y usar un bucle for en el comando ...

pruebe {MyClass [] myClass = cProxy.getMyClass (); return "" + myClass [0]; } catch (Excepción e) {// nada que hacer} return "" + MyClass.UNKNOWN; <- NoClassDefFoundError arrojado Obtuve MyClass ...

Un problema al que me enfrento con la etiqueta del selector de fecha y hora de struts2.0.14 El problema es que el atributo de formato de fecha y hora de struts2 datetimepicker siempre debe establecerse en el formato del formato de fecha y hora del servidor Tomcat, de lo contrario ...

como titulado. Tengo uso sincronizado para proteger la escritura de subprocesos múltiples. pero quiero saber si necesito agregar volátil para proteger la lectura. (como sabemos, también puedo usar sincronizado para proteger la lectura, pero evitará la lectura ...