c# - jquery如何在c#中编写正确的json对象

标签 c# jquery asp.net json

在 C# 中编写 json 对象的最佳方法是什么?我有一段代码应该从数据库获取数据并写入 json 对象,但我还没有弄清楚这一点

[WebMethod]
public static string get_specialities(string ProfessionalID)
{
    Database db = DatabaseFactory.CreateDatabase("Connection String2");
    DbCommand dbCommand;
    dbCommand = db.GetStoredProcCommand("select_Professionals_Speciality");
    db.AddInParameter(dbCommand, "prof_id", DbType.Int16, Convert.ToInt16(ProfessionalID));
    IDataReader dr = db.ExecuteReader(dbCommand);
    //[{ id: 3, name: "test3" }]
    string return_str="[";
    int i = 0;
    while (dr.Read()) {
        if (i > 0)
            return_str += ",";
        return_str += "{id:" + dr["SpecialtyID"].ToString().Trim() + ",name:" + dr["SpecialtyName"].ToString().Trim() + "}";
        i++;
    }
    return_str += "]";
    return return_str;
}

这将返回下面的对象,该对象的格式错误

{"d":"[{id:67,name:Kardiyoloji}]"}

我做错了什么?

最佳答案

使用 JavaScriptSerializer class 尝试此操作:

List<Person> people = new List<Person>();
Person p = new Person();

while (dr.Read()) {
    p = new Person();
    p.id = dr["SpecialtyID"].ToString().Trim();
    p.name = dr["SpecialtyName"].ToString().Trim();
    people.Add(p);
}

JavaScriptSerializer serializer = new JavaScriptSerializer();
string return_str = serializer.Serialize(people);

关于c# - jquery如何在c#中编写正确的json对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15811670/

相关文章:

javascript - 禁用输入点 '.' javascript

javascript - 有什么方法可以在 jPlayer jquery 插件中设置 15 秒倒带按钮吗?

asp.net - 设计决策 - Javascript 数组或 http 处理程序

c# - LinqDataSource 因未知原因抛出 ChangeConflictException

c# - 数据绑定(bind)不适用于我的依赖属性

c# - NLog 全局属性

c# - 如何将字符串转换为编码的url

c# - 如何从mysql数据库中提取固定数量的项目

javascript - 了解 Backbone.js REST 调用

.net - 哪些因素会影响我在新项目中使用的数据访问层?