سؤال

ايم محاولة تحديث جسون صفيف.إذا كان لدي جسون مثل هذا واحد:

{
  "value":[
  {
    "name":{
      "first":"Bob",
      "last":"Pegelano"
  },
    "age":31,
    "email":"bob@gmail.com"
  },
  {
    "name":{
      "first":"Majkl",
      "last":"Skot"
    },
    "age":321,
    "email":"gecko@gmail.com"
  }]
}

يمكنني بسهولة تحديث صفيف مثل هذا.

val jsarrayUpdate = (__ \ 'value).json.update(
  __.read[JsArray].map{ o => o :+ Json.obj( "field243" -> "coucou" ) }
)      

myJson.transform(jsarrayUpdate)     

ولكن لدي مجموعة بسيطة جسون دون أي مفتاح:

  [{
    "name":{
      "first":"Bob",
      "last":"Pegelano"
  },
    "age":31,
    "email":"bob@gmail.com"
  },
  {
    "name":{
      "first":"Majkl",
      "last":"Skot"
    },
    "age":321,
    "email":"gecko@gmail.com"
  }]

وكان يأمل أن تكون قادرة على تحريره مع هذا الأمر:

val jsarrayUpdate2 = __.json.update(
  __.read[JsArray].map{ o => o :+ Json.obj( "field243" -> "coucou" ) }
)  

هذا لا يعمل ولا هو أي شيء آخر حاولت في الساعتين الماضيتين.ماذا أفعل خطأ?

يعطيكم الصّحة.

هل كانت مفيدة؟

المحلول

ماذا عن

jsArray.as[List[JsObject]].map {i => i ++ Json.obj( "field243" -> "coucou")}

هذا وسوف تعطيك List[JsObject].إذا كنت بحاجة يمكنك تحويله مرة أخرى إلى JsArray مع

Json.toJson(listOfJsObjects).as[JsArray]
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top