将JSONObject写入文件

时间:2011-09-14 13:47:55

标签: java json file file-io

我正在使用Play框架。我有一个JSONObject,其结构如下(在打印的控制台中)

{
    "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"
    ]
}

我想将此JSONObject写入文件。这是代码

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);
          }

以上内容未成功写入文件。发生序列化错误。

2 个答案:

答案 0 :(得分:15)

在JSONObject上调用toString,然后序列化字符串。 JSONObject本身不可序列化。

String jsonString = jsonObject.toString();

答案 1 :(得分:7)

JSON是序列化,它不实现可序列化,只需将其转换为字符串并将字符串保存在文件中(作为文本)。