试图将嵌套的JSON写入File

时间:2014-03-05 10:17:05

标签: java android json file stack-overflow

这是我在这里的第一篇文章。

好吧,我在尝试将嵌套的JSON写入Android中的File时遇到了问题。 它显示了java.lang.StackOverflowError

我的问题是:有没有办法将嵌套的JSON写入文件而不会出现任何堆栈问题。

我将向您展示嵌套的JSON以及我尝试写入文件的方式

    JSONObject fingerPrint = new JSONObject();

    try {
        fingerPrint.put("fingerPrint", fingerPrint);
    } catch (JSONException e) {
        Log.v(TAG, "Error parsing creating JSON \"fingerPrint\"");
        e.printStackTrace();
    }


    JSONObject fingerPrintMaterial = new JSONObject();

    try {
        fingerPrintMaterial.put("methodType", FingerprintFacade.MAC_SHA256);
        fingerPrintMaterial.put("keySize", 5);
    } catch (JSONException e) {
        Log.v(TAG, "Error parsing creating JSON \"fingerPrintMaterial\"");
        e.printStackTrace();
    }


    JSONObject userFingerPrint = new JSONObject();

    try {
        userFingerPrint.put("fingerPrint",  fingerPrint);
        userFingerPrint.put("fingerPrintMaterial", fingerPrintMaterial);
    } catch (JSONException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

现在这就是我想写的方式:

    try {
        BufferedWriter file=new BufferedWriter(new FileWriter(pathToNonEncryptedTxt+filename, true));
        //FileWriter file = new FileWriter(pathToNonEncryptedTxt+filename);
        file.write(userDigitalContent.toString(2));
        file.newLine();
        file.write(userFingerPrint.toString(2));
        file.flush();
        file.close();
    } catch (IOException e) {
        Log.v(TAG, "Error saving JSON into "+filename);
        e.printStackTrace();
    } catch (JSONException e) {
        Log.v(TAG, "Error saving JSON into "+filename);
        e.printStackTrace();
    }

哦!顺便说一句,我需要将类似的内容输出到.txt文件中:

    {
    "userFingerPrint": {
            "fingerPrint": {
                "fingerPrint": "fingerPrintValue"
            },
            "fingerPrintMaterial": {
                 "methodType": "methodTypeValue",
                 "keySize": "5"
            }
}

1 个答案:

答案 0 :(得分:0)

我想在您的代码中创建JSONObject时出现了一些问题。创建JSONObject后,请参考此JSONObject创建JSONObject,您可以通过调用jsonObj.toString(从{{1}}获取Sting并将该字符串写入文件