JSON オブジェクトを返す Web サービスがありますが、それをループしようとすると、各オブジェクトの各項目が undefined を返します
これは、Web サービスから返された JSON オブジェクトです。
[{"result":14,"question":"6 - 7 مرات اسبوعيا","aID":70},{"result":29,"question":"3 - 5 مرات اسبوعيا","aID":71},{"result":41,"question":"مرة واحدة اسبوعيا","aID":72},{"result":14,"question":"1 - 3 مرات شهريا","aID":73}]
そしてここで私がそれをループする方法:
var resultAsJson = data.d;
$.each(resultAsJson, function (index, resObject) {
$('#pollResults').append('<p><strong>' + resObject.result + ' ' +
resObject.question + '</strong></p>');
alert(resObject.question);
});
- - - - - - - - - アップデート - - - - - - - - -
こんにちは皆さん、上記のコードは正常に動作しました。問題は、Web サービスから返された JSON 応答が次のようにシリアル化されていたことです。
Dim m_result As New Data.Objects.ObjectParameter("Result", GetType(Boolean))
Dim lstofresult As List(Of addPollvote_Result) = Context.addPollvote(para_pid, para_aid, Date.Now, m_UID, Nothing, HttpContext.Current.Request.ServerVariables("REMOTE_ADDR"), Nothing, m_result).ToList
Dim m_json As New Script.Serialization.JavaScriptSerializer
Return m_json.Serialize(lstofresult)
シリアライゼーションを削除してリストを返すと、完全に機能しました。以下の作業コードを参照してください。
Dim m_result As New Data.Objects.ObjectParameter("Result", GetType(Boolean))
Dim lstofresult As List(Of addPollvote_Result) = Context.addPollvote(para_pid, para_aid, Date.Now, m_UID, Nothing, HttpContext.Current.Request.ServerVariables("REMOTE_ADDR"), Nothing, m_result).ToList
Return lstofresult
そしてそれは完璧に機能しました。