如何通过C#返回JSON并用JavaScript进行解析
How can I return JSON via C# and parse it in JavaScript?
我使用的是一个web服务,它从我的活动目录中获取数据,并向我的javascript返回一组对象。问题是,当我只想返回像这样的对象的值时,我就是封装在Object中的响应,其中包含_type
([{ value: "one", label: "Foo" }, { value: "two", label: "Bar" }]).
但是我收到了这个
[Object { __type="Service+NameDTO", value: "one", label: "Foo"}, Object { __type="Service+NameDTO", value: "two", label: "Bar"}]
这是我的c#
public NameDTO[] GetCompletionList(string prefix)
{
var nameList = new List<NameDTO>();
DirectorySearcher search = new DirectorySearcher();
string strPath = search.SearchRoot.Path;
DirectoryEntry entry = new DirectoryEntry(strPath);
search.PageSize = 1000;
search.Filter = "(&(objectClass=user)(objectCategory=person)(displayName=*" + prefix + "*))";
foreach (SearchResult sResultSet in search.FindAll())
{
if (sResultSet.Properties["mail"].Count > 0)
{
var dto = new NameDTO()
{
label = (string)sResultSet.Properties["displayName"][0],
value = (string)sResultSet.Properties["mail"][0],
};
nameList.Add(dto);
}
}
NameDTO[] myArray = nameList.ToArray();
return myArray;
}
public class NameDTO
{
public string label { get; set; }
public string value { get; set; }
}
和我的javascript
<script type="text/javascript">
$(document).ready(function () {
$('#tokenfield').tokenfield({
autocomplete: {
source: function (request, response) {
$.ajax({
url: '<%#ResolveUrl("~/Service1.asmx/GetCompletionList") %>',
data: "{ 'prefix': '" + request.term + "'}",
dataType: "json",
type: "POST",
contentType: "application/json; charset=utf-8",
success: function (data) {
response($.map(data.d, function (item) {
return data
}))
},
success: function(response) {
$.each(response, function(key, val) {
alert(val.id);
});
},
error: function (response) {
alert(response.responseText);
},
failure: function (response) {
alert(response.responseText);
}
});
},
search: function () {
var term = this.value;
if (term.length < 3) {
return false;
}
},
focus: function () {
// prevent value inserted on focus
return false;
},
},
});
});
</script>
您可能需要一些典型的JSON构建器。
服务器端,您可以制作字典、数组等,并将所有内容放入
JsonMapper.ToJson(jsonDict)
呼叫。
我项目中的这个函数间接调用JsonSerializer(),即Newtonsoft JSON处理程序。对于序列化和反序列化JSON都非常有用。
不过,我可能误解了你的问题;有点含糊。
http://weblogs.asp.net/scottgu/archive/2007/10/01/tip-trick-building-a-tojson-extension-method-using-net-3-5.aspx非常相关,非常有用。
你可能需要这个:
var jsonString = @Model; //or however you get your string.
var json = JSON.parse(jsonString);
相关文章:
- Javascript使用本地存储,回调对象并用Json更改为一个字符串以用于填充函数
- 如何返回到上一页并用php或javascript刷新它
- javascript:搜索并用不同的颜色代码替换十六进制颜色代码
- 我可以在另一个函数中创建一个函数并用Javascript调用它吗
- 如何用javascript访问json对象并用java将其转换为数组
- 使用JavaScript返回click-li项目的值,并用结果填充文本区域
- 如何通过C#返回JSON并用JavaScript进行解析
- 搜索Thorough链接并用Regex、PHP或Javascript识别RSS源
- 如何检查数组中的重复值并用JavaScript返回索引
- 如何自动捕获(系统)日期更改并用javascript刷新页面
- 搜索HTML文本区域中给定的单词,并用JavaScript在字符串中突出显示它们
- 分析一个文件的内容并用JavaScript存储在一个对象中
- 如何获取选定的文本id,并用javascript替换保持标签完整的文本
- 如何将当前日期与未来日期进行比较并用javascript进行验证
- 从服务器请求JSON并用Javascript进行解析
- 尝试用javascript创建一个座位预订系统,并用本地存储保存数据
- 如何从文本框中获取字符串并用javascript在页面中显示
- javascript foreach数组,并用逗号和空格分隔,显示为字符串
- 引导导航面板和日期选择器,并用javascript调用C#控制器
- Jquery或Javascript-Regex按ID匹配元素并用类似ID更改其他元素