ASMX Json以'['开头,而不是'{'

问题描述 投票:0回答:1

我正在使用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>

我将使用这个JSON和一个Android应用程序,但是当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;    
    }        
}
c# asp.net json web-services javascriptserializer
1个回答
3
投票

如何插入{开头?

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

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

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.