2015-07-21 53 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包含命名空间..... –