簡體   English   中英

Angular2-如何將Rails json錯誤響應分解為字符串

[英]Angular2 - how to destructure a Rails json error response into a string

來自Rails API的錯誤響應給了我這個json主體:

{“ mobile”:[“已經被使用”],“ email”:[“已經被使用”]}

如您所見,每個字段可以具有與之關聯的錯誤消息數組。

我試圖將其“解構”成一個簡單的字符串:

“手機已被占用,電子郵件已被占用”

我試圖使用map並為其提供功能。 顯然,我需要考慮以下事實:這些數組中可能有多個元素,例如:

{“ mobile”:[“已經被使用”,“必須在英國開始07”],“電子郵件”:[“已被使用”]}

然后應變為:

“手機已經被使用,英國必須開始移動07,電子郵件已經被使用”

可以這樣完成:

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(', ');

沒有任何實際的努力,或者至少沒有提供任何代碼,這就像在做某人的作業。 另一方面,這些是我喜歡的有趣的事情。 無需地圖或其他任何東西。 只是普通的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(', '));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM