繁体   English   中英

如何在C#中创建自定义JSON,返回值应该是什么?

[英]how to create a custom JSON in C# and what should the return value be?

我想从mssql 2008结果创建自定义json数据,以便我的iPhone可以使用它。

我可以像这样使用json网站而不会出现问题: json链接

格式如下:

Place: New York
       Hotel: Widget Hotel
       Telephone: 0305525253

我应该返回哪种格式才能在iPhone上使用它? 字符串数组,字典? 我不知道

编辑:这是我的代码:

    namespace WebService1
{
    public class LandHelper
    {
        internal static string[] Land()
        {
            List<string> landObject = new List<string>();

            using (SqlConnection con = new SqlConnection(@"Data Source=Localhost\SQLEXPRESS;Initial Catalog=BOOK-IT-V2;Integrated Security=true;"))
            using (SqlCommand cmd = new SqlCommand(@"SELECT BEZEICHNUNG FROM LAND", con))
            {
                con.Open();
                using (SqlDataReader rdr = cmd.ExecuteReader())
                {
                    while (rdr.Read())
                    {
                        if (rdr["BEZEICHNUNG"] != DBNull.Value)
                        {
                            landObject.Add(rdr["BEZEICHNUNG"].ToString());
                        }
                    }
                }
            }
            return landObject.ToArray();
        }
    }
}

我试过了,但我不知道如何为从数据库中获取的值添加密钥。 我认为创建自定义json格式会更容易。

好的,如果我正确理解了这一点,那么您想要做的就是将一组对象字符串化为JSON,然后在您的iPhone应用程序中读取它们。 我假设您正在询问如何从object-to-JSON转换,并且您已经介绍了JSON-to-object 我将在这里介绍object-to-JSON

您需要做的是创建一个类,其中包含JSON文件中所需的所有信息,就像这样。

public class Location
{
    public string Place { get; set; }
    public string Hotel { get; set; }
    public string Telephone { get; set; }
}

现在,在数据库读取器语句中,您将要构造一个List<Location> ,然后将每个Location添加到此列表中。 完成此操作后,您将可以轻松地使用JSON.NET框架将集合转换为JSON ...,这使得将对象转换为JSON变得简单:

// "locations" is the name of the collection
JsonConvert.SerializeObject(locations);

JSON .NET文档

希望这可以帮助。 :)

只需返回一个类似的列表

  [ScriptMethod(ResponseFormat = ResponseFormat.Json)]
    [WebMethod]
    public List<StandortHelper.REGION> LAND()
    {
        return StandortHelper.LAND();
    }

您可以轻松返回JSON-FORMAT

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM