2013-10-09 4 views
1

Я пытаюсь вызвать метод JsonWriter, чтобы добавить что-то к test.json после получения информации о Wi-Fi, но после успешной записи файла файл по-прежнему пуст. Вот коды ,Android: JsonWriter не умеет писать в файл

OnReceive

@Override 
     public void onReceive(Context c, Intent i) { 
      if (i.getAction().equals(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION)) 
      { 
       dbhelp = new DataBaseHelper(c); 
       wifilist = new ArrayList<ScanResult>(); 
       wifilist = ((WifiManager) c.getSystemService(Context.WIFI_SERVICE)).getScanResults(); 
       dialog.dismiss(); 
       file = new File(c.getExternalCacheDir(),"testJson.json");   
       try 
       { 
        out = new FileOutputStream(file); 
        writeJson(out); 
       } 
       catch(IOException e) 
       { 
        e.printStackTrace(); 
       } 
      } 
     } 

JsonWriter

public void writeJson(OutputStream out) throws IOException { 
     writer = new JsonWriter(new OutputStreamWriter(out, "UTF-8")); 
     writer.setIndent(" "); 
     jsonFinal(writer);} 

public void jsonFinal(JsonWriter writer) throws IOException{ 
      writer.beginObject(); 
      writer.name("status").value("OK"); 
      writer.name("num_results").value(""); 
      writer.endObject(); 
     } 

ожидаемый результат хотел

{ 
    "status": "OK", 
    "num_results": "", 
} 

ответ

3

вы забыли вызвать JsonWriter.close(); после написания JSONObject сделать это как:

 writer.name("status").value("OK"); 
     writer.name("num_results").value(""); 
     writer.endObject(); 
     writer.close(); //<<< call close here 
+0

, если я хочу, чтобы выполнить или вызвать внешний файл на сервере. как мне это сделать? – dhpratik

Смежные вопросы