2015-04-23 25 views
5

(node.js, JavaScript):ekleme Şu anda aşağıdaki biçimde bir json dosyası kurulum var

:

{ 
    "OnetimeCode" : "Value" 
} 

Ve İsterdim iki şey yapmak mümkün dosyasında (dosyadaki değerleri değiştirmek)

  • (aynı formatta) dosyasına Yeni Öğe ekleme
  • olmam için

    • ekleme bir modül (Düğüm için) ya da bunu başarmamı sağlayacak basit örnek kodları bulmaya çalışmak için neredeyse bir saat aradı.

      Zaten birkaç eklentiyi kullanmayı denedim, ancak dosyaya eklemek yerine tamamen yeniden yazıyorlar. eklentileri

      Bir

      var jf = require('jsonfile'); // Requires Reading/Writing JSON  
      var jsonStr = WEAS_ConfigFile; 
           var obj = JSON.parse(jsonStr); 
           obj.push({OnetimeCode : WEAS_Server_NewOneTimeCode}); 
           jf.writeFileSync(WEAS_ConfigFile, obj); // Writes object to file 
      

      (npm jsonfile yükleme) "jsonfile" denir Ama bu çalışıyor gibi görünmüyor.

      Herhangi bir yardım için teşekkür ederiz! Ama lütfen, basit olsun.

      Ayrıca: Sana jsonfile kütüphanesi ile sağlanan kod iyi bir başlangıç ​​gibi görünüyor jQuery

    +0

    çalıştırma sırasında veya yapı anda bunu yapmak istiyor musunuz? – moarboilerplate

    +0

    , JSON dosyasının sonunda (“' '' '' '' '' '') bir terminatör olacak ve onu bir şeyler içine koymanız gerektiğinden yeniden yazmak zorundasınız. – Plato

    +0

    Tamam, var mı Yeniden yazmanın yolu var mı? Mevcut dosyayı saklamak için bir yol mu var? – medemi68

    cevap

    9

    kullanamazsınız: Eğer bir nesne haline json ayrıştırmak .push() diyoruz, ve bir şeyler kaydedin. Ham Düğüm görüşmeleri sayesinde

    (json dosyası varsayarak bir dizinin bir temsilidir):

    var fs = require('fs'); 
    function appendObject(obj){ 
        var configFile = fs.readFileSync('./config.json'); 
        var config = JSON.parse(configFile); 
        config.push(obj); 
        var configJSON = JSON.stringify(config); 
        fs.writeFileSync('./config.json', configJSON); 
    } 
    
    appendObject({OnetimeCode : WEAS_Server_NewOneTimeCode}); 
    
    +0

    Bunu deneyeceğim .. Teşekkürler, (Bir işlev tam olarak aradığım şeydi) – medemi68

    +0

    "Bana göster" Nesne # 'push' yöntemine sahip değil – medemi68

    +0

    Bu bir dizi değil .. – medemi68

    İlgili konular