[英]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.