2011-09-14 22 views
6

Estoy usando Play framework. Tengo un JSONObject que tiene una estructura como la de abajo (como en la consola se imprime)Escribiendo JSONObject en un archivo

{ 
    "rows_map":{ 
     "220":["mahesh", 
      "outfit:bmtech,app:salesreport,uuname,ffname,llname", 
      "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.5", 
      null 
     ], 
"221":["mahesh", 
      "outfit:bmtech,app:salesreport,uuname,ffname,llname", 
      "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.5", 
      null 
     ], 
"222":["mahesh", 
      "outfit:bmtech,app:salesreport,uuname,ffname,llname", 
      "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.5", 
      null 
     ], 
"223":["mahesh", 
      "outfit:bmtech,app:salesreport,uuname,ffname,llname", 
      "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.5", 
      null 
     ] 
}, 
    "columns_map":["Sender", 
     "Message Received", 
     "Device", 
     "Time" 
    ] 
} 

quiero escribir este JSONObject en un archivo. Aquí está el código

String path = "/var/www/html/Prj/public/CacheLayer/Incoming_Cache/CacheFileMgr.cache"; 

      ObjectOutputStream outputStream = null; 
     try{ 
      outputStream = new ObjectOutputStream(new FileOutputStream(path)); 
      System.out.println("Start Writings"); 
       outputStream.writeObject(object); 
       outputStream.flush(); 
        outputStream.close(); 
      }catch (Exception e){ 
      System.err.println("Error: " + e); 
      } 

Lo anterior no se escribe correctamente en el archivo. Se produce un error de serialización.

+1

Por favor, publique el mensaje de error junto con el código. Podría ser un error de permisos, o podría ser algo tan simple como 'JSONObject' no implementa la interfaz' Serializable', que es lo que se necesita para que '.writeObject()' funcione (http: // download. oracle.com/javase/1,5.0/docs/api/java/io/Serializable.html). – jefflunt

Respuesta

13

Llamar a String en JSONObject y serializar la cadena. JSONObject en sí no es serializable.

String jsonString = jsonObject.toString(); 
+0

Gracias, al usar toString está escribiendo correctamente en el archivo. Al principio está añadiendo estos caracteres . En la consola no estaba allí. ¿Qué es esto y cómo podría ignorar esto? – Arasu

+1

Bien, he encontrado la solución aquí [enlace] http://stackoverflow.com/questions/2801305/java-unwanted-characters-at-the-beginning-of-a-file-as-result-of-serialization – Arasu

6

JSON es la serialización, que no implementa serializable, simplemente convertirlo a cadena y guardar la cadena en un archivo (como texto).

Cuestiones relacionadas