在我的发挥框架程序,我发送JSON到后端,后端中我想在阵列访问在JSON斯卡拉request.body.asJson访问阵列
我尝试这样做:
val processSteps = request.body.asJson.map{
json => (json \ "stepsData").asOpt[Object].map { steps =>
println(steps)
}
for (processStep <- steps) {
processStep.map(_.validate[ProcessStepTemplatesModel] match {
stepsData是一个数组,我想访问
请求:
Some({"steps":"","stepsData":[{"steptitle":"sd","title":"asd"}],"stepType":"duty","createdat":"2017-05-31 14:30:26","updatedat":"2017-05-31 14:30:26","activeSnackbar":false,"snackbarText":{"type":"span","key":null,"ref":null,"props":{"children":[{"key":null,"re
f":null,"props":{"value":"snackbar.processes.createProcess"},"_owner":null,"_store":{}},": ",null]},"_owner":null,"_store":{}},"approvedProcessTemplates":[],"approveprocess":17,"approveprocessTitle":"Felix","trainingsprocess":47,"trainprocessTitle":"Posaune","d
eleted":false,"dialogActive":false,"title":"ads","processtemplate":1,"loaded":true,"version":"asd","responsible":"asd","accountable":"asd","consulted":"asd","informed":"asd","deadline":"2017-05-18T12:30:09.460Z","dialogActions":[{"label":{"key":null,"ref":null,
"props":{"value":"dialog.processes.deleteProcess.cancel"},"_owner":null,"_store":{}}}],"dialogTitle":{"key":null,"ref":null,"props":{"value":"dialog.processes.selectProcessTemplate.trainingsprocess.header"},"_owner":null,"_store":{}},"dialogHandlerVariable":1})
增加了 – Felix
以上的请求,定义了这种情况下的类:StepData(steptitle:String,title:String) 并按照上面的方式继续工作。 –
也许下面这可以帮助你:https://stackoverflow.com/questions/34437520/making-reads-and-writes-in-scala-play-for-lists-of-custom-classes –