我的應用程序向服務器發送ajax POST,如果服務器驗證失敗,服務器將string
或Dictionary<string, object>
返回給客戶端。如何確定json對象是否是序列化字典?
因此,如果服務器發送Dictionary
然後系列化responseText
是jQuery是收到類似
"{\"Key1\":[\"Error Message 1\"],\"Key2\":[\"Error message 2\"]}"
我也有相應的可在客戶端responseJSON
。
$.ajax({
cache: false,
type: 'POST',
url: url,
data: data
})
.fail(function (response, textStatus, errorThrown) {
if (response.status === '400') {
if ($.isArray(response.responseJSON)) {
$.each(response.responseJSON, function (index, value) {
//do something
})
}
else if ($.type(response.responseJSON) === 'string') {
// do something
}
}
}
當響應是字典時,.isArray
方法返回false。我如何確定responseJSON是否爲Dictionary
以及我如何循環?
注意
object該服務器發回
的可能的複製[檢查如果一個值是在JavaScript對象(http://stackoverflow.com/questions/8511281/check-if-a-value-is-an-object-in-javascript ) – Hamms
JavaScript中沒有'Dictionary'類型。你得到一個JSON字符串的方式。一旦反序列化,你就有一個「對象」。 –
你在做什麼沒有意義。將dataType設置爲json並使用成功處理程序處理已經是對象的數據。如果失敗,則responseText無效json或者有其他連接錯誤 – charlietfl