我正在尝试解析从 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
}
}));
}
});
}
我遇到的问题是,当我返回解析对象上的成员时,没有定义任何属性。如果我深入研究对象,似乎它将对象视为一个长字符串,因此 index[0] 将是“[”等等。
我已经阅读了所有内容,并且尝试了所有我看到的选项,但我仍然遇到这个问题。我不确定我是否在序列化或解析不正确,但我们将不胜感激。
另外,不确定是否重要,但 WCF 上的绑定是 webHttpBinding