私のJSでは、Jqueryの$ ajax関数を使用してWebサービスを呼び出し、jsonifiedデータを送信します。データのフォーマットは次のとおりです。C#Webサービス内のデータをJsonified文字列から取得する
var countries = {
"1A": {
id: "1A",
name: "Andorra"
},
"2B": {
id: 2B
name: "Belgium"
},
..etc
};
var jsonData = JSON.stringify({ data: data });
//その後、$アヤックスが呼び出され、それがWebサービスがこれを解凍する必要があるのC#側ではC#のWebサービス
への呼び出しを行っていますデータは、現在、string [] []データ型として取り込まれています。どのようにフォーマットに変換すればいいのですか?
.idと.nameのようなプロパティを参照できますか?これらのプロパティを持つSampleというクラスがあるとします。 ありがとう!
EDIT:
ここである私のJSコード:C#のWebサービスの内部
var jsonData = JSON.stringify(countries);
$.ajax({
type: 'POST',
url: 'http://localhost/MyService.asmx/Foo',
contentType: 'application/json; charset=utf-8',
data: jsonData,
success: function (msg) {
alert(msg.d);
},
error: function (xhr, status) {
switch (status) {
case 404:
alert('File not found');
break;
case 500:
alert('Server error');
break;
case 0:
alert('Request aborted');
break;
default:
alert('Unknown error ' + status);
}
}
});
私が持っている:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;
using System.Data;
using System.Collections;
using System.IO;
using System.Web.Script.Services;
[WebMethod]
[ScriptMethod]
public string Foo(IDictionary<string, Country> countries)
{
return "success";
}
感謝:)私はまた、このWebサービスに他のデータを送信しています。現在、私のWebサービスは ます。public void Fooの(文字列[] []のデータ) { // 何でも} dataパラメータ内 は、データが[0]の資格情報が含まれていますが、データが[1]が含ま[WebMethod属性]のようになります。オブジェクトの実際の配列.... – sarsnake
@gnomixa、他のデータは?すべてが強力なタイプで表現できます。したがって、このディクショナリをプロパティとして含み、別のプロパティとして渡す他のデータを含む基本オブジェクトを定義します。この 'string [] []'を取り除くだけです。それはあなたのウェブメソッドを維持することができなくなります。 –
は、このシナリオを考えればあなたのやり方は変わりませんか? – sarsnake