2014-10-08 21 views
8

kullanarak JSON dizisine ekle Şu anda aşağıdaki json array nesnesine (name.json) sahibim.JSON öğesini Java

[{ 
    "name":"ray", 
    "value":"1" 
}, 
] 

Şimdi java kullanarak dosyasında bu Json dizideki bir daha eleman eklemek istiyorum. Böyle bir şey:

[{ 
    "name":"ray", 
    "value":"1" 
}, 
{ 
    "name":"john", 
    "value":"2" 
} 
] 

bir yolu, dosyadan tüm dizi okumanızı diziye bir öğe ekler ve java json dosyası geri yazmaya olabilir. Ama bu kesinlikle bu görevi yerine getirmenin en uygun yolu değildir. Herkes buna başka bir yol önerebilir mi?

+1

kapatmak Hayır, önerilen yol uygun yoldur. Verileri serileştirmek, veri eklemek ve daha sonra verileri serileştirmek için –

+3

kesinlikle yapmanız gereken şeydir. –

+1

Açıkladığınız yaklaşımın nesi yanlış? Bunu yapmanın tek temiz yolu. – nablex

cevap

2

bu deneyin:

1 - okuma/yazma izinlerine sahip bir RandomAccessFile nesne ("rw") oluşturmak;

RandomAccessFile randomAccessFile = new RandomAccessFile("/path/to/file.json", "rw"); 

2 - char pozisyonuna dosya imleci ayarlamak "]"

long pos = randomAccessFile.length(); 
while (randomAccessFile.length() > 0) { 
    pos--; 
    randomAccessFile.seek(pos); 
    if (randomAccessFile.readByte() == ']') { 
     randomAccessFile.seek(pos); 
     break; 
    } 
} 

3 - Yeni json elemanı ve kömür (ilk unsur değilse) bir virgül yazma "]"

String jsonElement = "{ ... }"; 
randomAccessFile.writeBytes("," + jsonElement + "]"); 

4 - dosyasını

randomAccessFile.close(); 
İlgili konular