2012-06-06 31 views
2

我想從mssql 2008結果創建一個自定義的json數據,以便我的iPhone可以使用它。如何在C#中創建自定義JSON,返回值應該是什麼?

我可以消耗這樣的JSON網站沒有問題: json link

格式看起來是這樣的:

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格式時會更容易。

+0

'新JavaScriptSerializer()。序列化(新{地點= 「紐約」 酒店=「窗口小部件酒店「,電話=」0305525253「})' –

+0

什麼是返回值? –

+0

json string like'{「Place」:「New York」,「Hotel」:「Widget Hotel」,「Telephone」:「0305525253」}'順便說一句,你爲什麼不試試? –

回答

2

只是返回像

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

列表您可以返回一個簡單的JSON格式

+0

它的作品非常感謝你 –

2

好的,如果我正確地理解了這一點,你想要做的是將對象集合串化爲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 Documentation

希望這幫助。 :)

相關問題