gpt4 book ai didi

android - JsonWriter 写入 GSON 文件时出现嵌套错误

转载 作者:行者123 更新时间:2023-11-29 17:55:44 25 4
gpt4 key购买 nike

我想通过这个函数写入文件,但总是返回异常NESTING PROBLEM。我的错误在哪里?异常出现在这行代码中:

writer.name("code").value(s);

请帮帮我

这是电话:


userA.Write(file_name, getActivity().getBaseContext(),Prodotto);

public static void Write(String fileName,Context context,String s) {

JsonWriter writer;
File myDir, file_1;
String file;

try {
myDir = context.getFilesDir();
file = myDir.getAbsolutePath().toString();
file_1 = context.getFileStreamPath(fileName);
if(!file_1.exists()) {
//not exist file, create it
file_1 = new File(myDir, fileName);
}
//writer = new JsonWriter(new FileWriter(file+ "/"+ fileName));
writer = new JsonWriter(new FileWriter(file+ "/"+ fileName));

writer.beginObject(); // {
writer.name("items"); // "items"

writer.beginArray(); // [
//ciclo for per tutti gli oggetti presenti
writer.name("code").value(s); // "code" : 29
writer.name("type").value(s); // "type"
writer.name("name").value(s); // "name"
writer.name("size").value(s); // "size"

writer.endArray(); // ]
writer.endObject(); // }
writer.close();

System.out.println("Write - Done");

} catch (IOException e) {
e.printStackTrace();
}

}

我的 JSON 结构是:

{ "items" : 
[
{
"code" : "1234",
"type" : "Pagnerine Cialda",
"name" : "Pagnerine Cialda Sottozero/Estate",
"size" : "ct"
},
{
"code" : "1234",
"type" : "Pagnerine Cartone",
"name" : "Pagnerine Cartone 16B",
"size" : "ct"
},
{
"code" : "1234",
"type" : "Zucchero",
"name" : "Saccarosio",
"size" : "kg"
},
]
}

最佳答案

从你的代码中有可疑的部分:

      writer.beginArray(); // [
//ciclo for per tutti gli oggetti presenti
writer.name("code").value(s); // "code" : 29
writer.name("type").value(s); // "type"
writer.name("name").value(s); // "name"
writer.name("size").value(s); // "size"

writer.endArray(); // ]

我想,你有兴趣开始像这样的对象数组:[{...}, {...}]

每个对象代表:

{"code": xxxxx, "type": xxx, "name": xxx, "size": xxxx}

取而代之的是 ["code": xxxxx, "type": xxx, "name": xxx, "size": xxxx]

您不能将 Key-Value 放入数组。

所以也许是这样的:

      writer.beginArray(); // [
writer.beginObject(); // { // open new object
writer.name("code").value(s); // "code" : 29
writer.name("type").value(s); // "type"
writer.name("name").value(s); // "name"
writer.name("size").value(s); // "size"
writer.endObject(); // }
writer.endArray(); // ]

作为旁注

在Java中,方法从小写开始。

关于android - JsonWriter 写入 GSON 文件时出现嵌套错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19592604/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com