WCF サービスから渡された JSON オブジェクトを解析しようとしています。サービスが提供する応答は次のとおりです。
[
{
"Caption": "Hello",
"CityState": "Seattle",
"URL": "Test"
},
{
"Caption": "World",
"CityState": "Chicago",
"URL": "Test"
},
{
"Caption": "Hello",
"CityState": "New York",
"URL": "Test"
}
]
オブジェクトを作成するための WCF コードは次のとおりです。
///Custom Object has 3 string properties
List<OW_CompanyACSearch> search = new List<OW_CompanyACSearch>();
DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(List<OW_CompanyACSearch>));
using (MemoryStream stream = new MemoryStream())
{
serializer.WriteObject(stream, search);
return Encoding.Default.GetString(stream.ToArray());
}
そして、これが私が機能させようとしているJQueryです
source: function (request, response) {
j$.ajax({
url:"testservice.svc",
dataType: "json",
data: {
Search: request.term
},
success: function (data) {
response(j$.map(data, function (item) {
return {
label: item.Caption,
value: item.Caption,
URL: item.URL,
CityState: item.CityState
}
}));
}
});
}
私が抱えている問題は、オブジェクトのメンバーを解析するために戻りに陥ったときに、プロパティが定義されていないことです。オブジェクトにドリルダウンすると、オブジェクトを 1 つの長い文字列として扱っているように見えるため、index[0] は "[" などになります。
私はすべてを読み、見たすべてのオプションを試しましたが、まだこの問題が発生します。シリアル化または解析が間違っているかどうかはわかりませんが、助けていただければ幸いです。
また、問題があるかどうかはわかりませんが、WCF のバインドは webHttpBinding です。