最初にJqueryのajax:
$.ajax({
url: 'ws_Ajax.asmx/BindDictByUpper'、
タイプ: 'POST'、
contentType: 'application/json;charset=utf-8'、
dataType: 'json'、
data: '{ PpareId:"' varlue '"}',
success: function (data) {
var dataObj = eval("(" data ")"); #myList').html('');
// for (var i = 0; i < msg.d.length; i ) {
// $('#myList').append( '
' msg.d[i] '');
alert(dataObj);
$.each({ name: "ジョン", lang : "JS" }, function (i, n) {
alert("名前: " i ", 値: " n)
$.each(dataObj, function (idx, item) {
if (idx == 0) {
return true; //同カウント、戻り false 同break
}
alert("name:" item['name'] ", value:" item['value']);
});
},
//data: '{query:"' $('#editQuery').val() '"}' 、
プロセスデータ: false
});
好、前台写好、建一ウェブサービス页、写上方法:
/// データテーブル转换は Json
///
///
Datatable对オブジェクト
///
Json字符串 public static string ToJson(DataTable Adt)
{
StringBuilder jsonString = new StringBuilder();
jsonString.Append("[");
foreach (Adt.Rows の DataRow pdr)
{
jsonString.Append("{");
jsonString.AppendFormat("name:"{0}",value:"{1}"", pdr["字典内容"].ToString(), pdr["序号"].ToString());
jsonString.Append("},");
// jsonString.AppendFormat("{name:'{0}',value:'{1}'},", pdr["字典内容"].ToString(), pdr["序号"].ToString ());
}
jsonString.Remove(jsonString.Length - 1, 1);
jsonString.Append("]");
return jsonString.ToString();
}
然后尝试着运行,是出问题列,無论怎样运行都不可调到后台方法:
最後在网上查列好久
才発行现在新建的ウェブサービス页少了一关键的话:
复制代
代次: [System.Web.Script.Services.ScriptService]
在类前这句话就可以了
加上以后再运行,好,调到後台了
後台のデータも前台に送信されます
しかしまた出てきました、送信されたデータは解析できません json データ
ネットワーク上で、ajax 内の dataType は json 実行完了に設定されていますが、
1、サーバーから返される JSON 文字列、場合は jquery 异步要求が型を示すか、文字列形式で受け入れられる場合、もう一度オブジェクト化処理が必要です。太麻烦、つまり、この文字列を eval() で一度実行します
2. サービスから返される JSON 文字列、場合によっては jquery 异步要求タイプ (通常はこの構成プロパティ) を "json" に設定するか、または利用します$.getJSON() メソッドはサービスを返します。eval() メソッドは必要ありません。この時点で得られた結果は既に json オブジェクトであるため、このオブジェクトを直接使用するだけで済みます。ここでは $.getJSON メソッドを例に説明します。データ処理メソッド
しかし、私は他の dataType を json に設定しています、これは直接使用できますか?
これは私が転送に来たデータ放在 eval() 方法里面処理了就下,再使用可能ですか? 私たちはここでまた疑問を抱いています:
私たちはこの方法でこのような方法でデータを取得しています (私たちは json ではありません)熟、第一次用):
复制代码
代码如下: $.each( data.root,function(idx,item){ if(idx==0){
return true;//同カウント、戻り false同break
}
alert("name:" item.name ",value:" item.value);
});
ネットワーク上で見られるこの方法は、json データベース、知道の解答の下で見ることができます。