Di groovy, saya punya objek di bawah ini. (Tipe: [Ljava.lang.Object)

 test = [  
   {  
      "id":"rod_1565173117796",
      "userName":"rod",
      "displayName":"Rod",
      "date":1565173117796,
      "comment":"ok"
   },
   {  
      "id":"rod_1565173139923",
      "userName":"rod",
      "displayName":"Rod",
      "date":1565173139923,
      "comment":"fine"
   }
]

Saya ingin mengubah/menghapus daftar array JSON ini berdasarkan id.

Saya mencoba di bawah ini menyaring objek json yang diperlukan dari daftar.

parsedJSON = parser.parseText(test);  
parsedJSON.findAll{ it.id == 'rod_1565173139923' });

Yang memberiku itu

Tidak ada properti seperti itu: id untuk kelas: java.lang.String

Apa yang salah yang saya lakukan?

Terima kasih!

1
Jayesh Dhandha 7 Agustus 2019, 14:27

1 menjawab

Jawaban Terbaik

Hanya beberapa perbaikan sintaks dan kode Anda berfungsi:

def test = '''[  
   {  
      "id":"rod_1565173117796",
      "userName":"rod",
      "displayName":"Rod",
      "date":1565173117796,
      "comment":"ok"
   },
   {  
      "id":"rod_1565173139923",
      "userName":"rod",
      "displayName":"Rod",
      "date":1565173139923,
      "comment":"fine"
   }
]'''

def parser = new groovy.json.JsonSlurper()
def parsedJSON = parser.parseText(test);  
def filtered = parsedJSON.findAll{ it.id == 'rod_1565173139923' }
3
daggett 7 Agustus 2019, 12:01