2013-10-25 73 views
1

我想用此函數寫入文件,但總是返回異常NESTING問題。 我的錯誤在哪裏? 此行代碼中出現異常:JsonWriter寫入GSON文件時發生嵌套錯誤

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" 
    }, 
] 
} 
+0

您將鍵/值對放入數組中。你不能這樣做,你需要一個對象來將鍵/值對放入其中。 – njzk2

+0

@ njzk2是的,他需要用'{}'包裝它作爲對象 –

+0

我用JSON結構更新我的問題 –

回答

3

FRO中號的代碼中有可疑的部分:

 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中,方法由小寫起步較晚。

+0

我用JSON結構更新我的問題 –

相關問題