2015-07-21 85 views
0

我想將列表更改爲json格式。我能怎麼做?列表更改爲json格式

 var db = new TelephoneBookDataContext(); 

     List<string> Capitals = (from U in db.Users 
           where U.Name.ToLower().StartsWith(name.ToLower()) 
           select U.Name).ToList(); 
     return Capitals; 

Java腳本的一部分,我不能讓這樣的代碼部分

$("document").ready(function() { 
     $("#<%= txtSearch.ClientID %>").autocomplete({ 
      source: function (request, response) { 
       $.ajax({ 
        url: "Show.aspx/GetName", 
        data: "{'name':'" + $("#<%= txtSearch.ClientID %>").val() + "'}", 
        dataType: "json", 
        type: "POST", 
        success: function (data) { 
         response(data.d); 
        }, 
        error: function (result) { 
         console.log(result); 
        } 
       }); 
      }, 
      minLength: 2 
     }); 
    }); 
+0

你的意思是你想序列這份名單的JSON srting? – Boot750

+0

[序列化爲JSON的列表]的可能的重複(http://stackoverflow.com/questions/9110724/serializing-a-list-to-json) –

+0

我不認爲它的dublicate ..它是字符串類型的列表和你傳遞的參考是objet類型列表..我們不能不使用Json直接使用類序列化字符串列表。在該代碼中完成了您提供的參考 –

回答

0

首先添加名稱空間

using System.Web.Script.Serialization; 

然後使用JavaScriptSerializer類

JavaScriptSerializer jss = new JavaScriptSerializer(); 

string output = jss.Serialize(ListOfMyObject); 

您的列表是字符串類型的,所以你可能需要低於這個嘗試,如果 以上DONOT工作。

string[][] ArrayCapitals = Capitals.Select(x => new string[]{x}).ToArray(); 

string json = JsonConvert.SerializeObject(ArrayCapitals); 
+0

JsonConvert具有錯誤 –

+0

「在當前上下文中不存在」添加NewtonSoft引用,然後使用Newtonsoft.Json包含命名空間..... –