这是我在这里的第一篇文章。
好吧,我在尝试将嵌套的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"
}
}
答案 0 :(得分:0)
我想在您的代码中创建JSONObject
时出现了一些问题。创建JSONObject
后,请参考此JSONObject
创建JSONObject
,您可以通过调用jsonObj.toString(
从{{1}}获取Sting并将该字符串写入文件