Saya ingin menambahkan bidang baru ke JSONObject dan nama bidang baru ini akan didasarkan pada nilai bidang lain. Untuk menjadi jelas, ini adalah contoh dari apa yang ingin saya capai. {"Nilai": [{...

0
user13755105 5 April 2021, 17:59

2 jawaban

Jawaban sebelumnya dari Gene McCulley memberikan solusi dengan Java dan menggunakan kelas net.minidev.json. Jawaban ini menggunakan Kelas Gson dan ditulis di Scala.

def statDup(o: JsonObject): JsonObject = {
    if (o.has("properties")) {
      val a = o.get("properties").asInstanceOf[JsonArray]
      for (e <- a) {
        val p = e.asInstanceOf[JsonObject]
        p.add(p.get("stat").getAsString, p.get("data"))
      }
    } else {
      for (key <- o.keySet) {
        val value = o.get(key)
        if (value.isInstanceOf[JsonArray]) {
          for (e <- value.asInstanceOf[JsonArray]) {
            statDup(e.asInstanceOf[JsonObject])
          }
        }
      }
    }
    o
  }
0
user13755105 5 April 2021, 17:23

Menggunakan GSON, apa yang harus Anda lakukan adalah membuat kelas dasar yang mewakili objek JSON awal Anda. Kemudian, perpanjang kelas itu dan tambahkan atribut tambahan yang ingin Anda tambahkan, seperti "Stat". Kemudian, muat objek JSON ke dalam memori, baik satu per satu atau bersama-sama, kemudian membuat perubahan yang diperlukan untuk masing-masing untuk mencakup perubahan Anda. Kemudian, memetakan perubahan tersebut ke kelas baru jika Anda tidak berada di langkah sebelumnya, dan membuat serial ke file atau penyimpanan lainnya.

0
Jason 5 April 2021, 15:19