fork download
  1. def jsonString="""
  2. {
  3. "prodS": {
  4. "langTrans": [
  5. {
  6. "Id": "11",
  7. "lang": "EN"
  8. },
  9. {
  10. "Id": "11",
  11. "lang": "FR"
  12. },
  13. {
  14. "Id": "12",
  15. "lang": "EN"
  16. },
  17. {
  18. "Id": "12",
  19. "lang": "FR"
  20. }
  21. ],
  22. "rates": [
  23. {
  24. "Id": "11",
  25. "rate": 100
  26. },
  27. {
  28. "Id": "12",
  29. "rate": 200
  30. }
  31. ]
  32. }
  33. }"""
  34. def expectedLanguages = ['EN', 'FR']
  35. def json = new groovy.json.JsonSlurper().parseText(jsonString)
  36. println "Rate Ids are $json.prodS.rates.Id"
  37. json.prodS.rates.Id.collect { id ->
  38. def actualLanguages = json.prodS.langTrans.findAll {it.Id == id}*.lang?.sort()
  39. println "${actualLanguages} found for $id under langTrans"
  40. assert expectedLanguages == actualLanguages, "Not matching languages for Id ${id}"
  41. }
Success #stdin #stdout 1.03s 86960KB
stdin
Standard input is empty
stdout
Rate Ids are [11, 12]
[EN, FR] found for 11 under langTrans
[EN, FR] found for 12 under langTrans