Angular2 - 如何将Rails json错误响应解构为字符串

时间:2017-02-11 17:47:40

标签: json angular dictionary rails-api

来自Rails API的错误响应给了我这个json正文:

{" mobile":["已经拍摄"],"电子邮件":["已经拍摄"]}

如您所见,每个字段都可以包含一系列与之关联的错误消息。

我正在努力解构'这变成了一个简单的字符串:

"移动已经被占用,电子邮件已经被采取"

我试图使用地图并为其提供功能。显然,我需要考虑这些数组中可能有多个元素的事实,例如:

{"移动":["已经被采取","必须从07开始为英国"],"电子邮件":[& #34;已经拍摄"]}

然后应该成为:

"移动设备已经开始使用,移动设备必须从英国开始07,电子邮件已经开始使用#34;

2 个答案:

答案 0 :(得分:1)

可以这样做:

let a = JSON.parse('{"mobile":["is already taken","must start 07 for UK"],"email":["is already taken"]}');
let message = Object.keys(a).reduce((prev, next) => prev.concat(a[next].map(v => next + ' ' + v).join(', ')), []).join(', ');

答案 1 :(得分:1)

没有任何实际的努力,或者至少没有提供代码,感觉就像做某人的功课。另一方面,这些都是我喜欢的有趣事物。不需要地图或其他任何东西。只是简单的TypeScript:

let errorMessages: string[] = [];

let json: string = {"mobile":["is already taken","must start 07 for UK"],"email":["is already taken"]};

let keys: string[] = Object.keys(json);

for(let key of keys) {
   for(let msg of json[key]) {
       errorMessages.push(key + ' ' + msg);
   }
}

console.log(errorMessages.join(', '));