我是Scala的新手(我从未使用过Java)。我正在开展一个有这个代码的项目
def doAccountUpdate(account: db.models.Account, config: JsObject, job: JsValue) : JsValue = {
val params = job \ "params"
Account.update(account, config, params)
Json.obj("account" -> account.toJson())
}
这里的参数是来自客户端的参数,例如浏览器,移动应用程序等。该代码调用另一个更新我们的数据库并将更新发送给第三方合作伙伴的功能(Account.update
)。 JSON看起来像:
...
identity" : {
"name" : {
"givenName" : "Rdlbnl0",
"familyName" : "Smith",
"legalName" : "Rdlbnl0 Smith"
},
contact" : {
"address" : {
"street" : "1234 N Main St",
"city" : "Portland",
"state" : "OR"
},
...
我的任务是仅从客户端发送具有更新值的JSON块。因此,举例来说,如果更新givenName
,familyName
或legalName
,我会发送整个"身份"阻止,但不是联系。
如果我正在编写JavaScript(我最强的语言),那么代码可能会像
一样var params = [
"givenName"
];
var hasUpdatedName = params.some(function(v) {
return ["givenName", "familyName", "legalName"].indexOf(v) != -1;
});
// => hasUpdatedName == true
一旦我知道哪些存在,我就可以验证价值是不同的,但是弄清楚哪些键存在,就像我的JS例子一样,我很难弄明白。