何か問題が生じた場合にエラーを含むjsonハッシュを返すAjax呼び出しがあります。ここでは例です:JSONハッシュを人間が読める文字列に変換する
this questionに基づいて{"success":false,"errors":{"image":["file must be at least 1024x768px in size."]},"content_type":"text/json"}
私はそうのように、私はこのハッシュの一部を印刷することができることを把握することができた:{"image":["file must be at least 1024x768px in size."]}
:
JSON.stringify(responseJSON.errors)
は、しかし、これはまだのように、コードのハッシュとして出力します
私は本当に単純にこれを変換したい:
Image file must be at least 1024x768px in size.
stringify
の後に.replace
を使用しないと、これを行う簡単な方法はありますか?ハッシュエラーは、例えば、より多くのエラーを含む可能性があることに注意してください:
{"image":["file must be at least 1024x768px in size."],"file":["type is invalid, must be jpg, png, or gif"]}
アップデート:私はなぜ知らないが、responseJSON
オブジェクトが渡された場合、以下に示す機能のいずれも文字列を返すんだろう。しかし、jQueryを使用してDOMに直接追加すると機能しました。ここに私がやってしまったものです:
// In the middle of an ajax callback
$('.qq-upload-failed-text:last').append(': <span class="explanation"></span>');
formatErrors(responseJSON);
// As a stand-alone function so it can be reused
function formatErrors(response) {
$.each(response.errors, function(key, value) {
$('span.explanation:last').append(key + " " + value);
});
}
それは正しくDOMにテキストを挿入するだろうが、Dampsquidの機能や他の人のいずれかを使用してのみ、空の文字列を返すのはなぜ私を超えています。あなたのJSONに基づいて
オブジェクトをループして文字列を組み立てたいと思うようです。 – SLaks
これは他のコードの真ん中にあるので、基本的にはエラーオブジェクトを渡して文字列を返すことができる単純な関数を作成します。 – Andrew