ASMX Json以' [',不是' {'

时间:2015-04-16 13:59:01

标签: c# asp.net json web-services javascriptserializer

我正在使用LINQ to SQL在C#/ ASP.net中创建WebService Json Parser。

它工作正常,但我的JSON以这种方式返回:

<string>[{"cli_id":1,"nome":"Joe"},{"cli_id":2,"nome":"Gary"},{"cli_id":3,"nome":"Ash"},{"cli_id":4,"nome":"Pedro"},{"cli_id":5,"nome":"Marcos"}]</string>

我将在Android应用程序中使用此JSON,但是当json页面以“{”开头而不是[。

时,许多代码都能正常工作

如何在开头插入{?

我正在尝试这段代码:

[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class WebService : System.Web.Services.WebService {    
    public WebService () {}

    DataClassesDataContext dados = new DataClassesDataContext();

    [ScriptMethod(ResponseFormat = ResponseFormat.Json)]
    [WebMethod]
    public string getCustomers() {    
        var json = "";    
        var clientes = from result in dados.clientes select result;

        JavaScriptSerializer jss = new JavaScriptSerializer();    
        json = jss.Serialize(clientes);    
        return json;    
    }        
}

1 个答案:

答案 0 :(得分:3)

  

如何在开头插入{?

你不想。您想要正确使用它:作为对象的数组

你没有展示你的Android代码消费它,但该代码应该期望顶级是一个数组,而不是一个对象。

我的意思是,你可以这样做:

return "{\"clientes\": " + json + "}";

...所以你的顶级是一个具有单个属性clientes的对象,带有一组客户端,但是没有理由;您输出的内容是有效的,只需要正确使用即可。