【问题标题】:How to set the object name on json如何在json上设置对象名称
【发布时间】:2014-12-05 15:38:24
【问题描述】:

我从 ASP.NET Web API 返回 JSON。 Json 确实返回没有问题,但在 Json 数组的开头没有对象名称供我在 android 应用程序中使用。

还有设置吗?

这是要返回的 Json

对象名称应该在开头。不只是从 ID 开始

[{"ID":1197,"CustomerGuid":"ea0af124-ab88-45d8-88f7-3f122ef53c04","UserTrackingID":"2624","EmailAddress":"m.mashoodtariq@gmail.com","Password":"Pakistan99","IsBusiness":null,"FullName":"Mashood","DateRegistered":"2014-11-26T18:51:47.977","PostCode":"44000","BusinessName":null,"FactualID":null,"FacebookToken":null,"Country":null},{"ID":1202,"CustomerGuid":"30c3781e-506c-490a-a27d-03a29696bdcd","UserTrackingID":"2643","EmailAddress":"customer@hotmail.com","Password":"george69","IsBusiness":null,"FullName":"Pending Customer","DateRegistered":"2014-11-27T08:08:04.29","PostCode":"4220","BusinessName":null,"FactualID":null,"FacebookToken":null,"Country":null},{"ID":1203,"CustomerGuid":"cf7d09e4-2e84-4b16-b38c-d32579d1c6c4","UserTrackingID":"2646","EmailAddress":"tesr@hotmail.com","Password":"george69","IsBusiness":true,"FullName":"tester","DateRegistered":"2014-11-28T00:12:40.523","PostCode":"4102","BusinessName":"tester","FactualID":null,"FacebookToken":null,"Country":null}]


Public Class UsersController
    Inherits System.Web.Http.ApiController

    Private db As New PushStateNovember7Entities
    ' GET: api/Users
    Function GetUsers() As IQueryable(Of User)
        Return db.Users
    End Function

End Class

您还可以查看项目的实时信息并访问帮助页面@

【问题讨论】:

  • 请显示您正在序列化的类。另外,你是在唱 ASP.NET MVC 还是 ASP.NET Web API? (控制器或 ApiController)

标签: asp.net-mvc json asp.net-web-api


【解决方案1】:

不知道为什么你需要一个名字在开头。如果您只需要在 Android 中解析 Json 数组,您可以执行以下操作:

假设您有以下用户类:

public class User {
    private string _ID;
    private string _CustomerGuid;
    //and so on

    public string setID(string Id){ _ID = Id;} 
    public string getID(){ return _ID;}

    public string setCustomerGuid(string customerGuid){ _CustomerGuid = customerGuid;} 
    public string getCustomerGuid(){ return _CustomerGuid;}
}

要获取/解析 Json 数组,您可以执行以下操作:

JSONArray array = new JSONArray(yourApiReturnedJsonStringHere);
ArrayList<User> users = new ArrayList<User>();

for (int i=0; i < array.length(); i++) {
    User user = new User();

    JSONObject jObj = array.getJSONObject(i);

    user.setID(jObj.getString("ID"));
    user.setCustomerGuid(jObj.getString("CustomerGuid"));
    //.....

    users.add(user);
}

【讨论】:

  • 是的,谢谢,我现在知道有两个选项或者 getJsonObject 和 getJsonArray ,还在学习中,再次感谢
【解决方案2】:

你可以试试这个

 var response = new ApiResponse<T>();
 response.Data = db.Users;
 return response;

这会将您的列表封装在数据名称中

如果您不使用 API 控制器,则只需创建响应类和

public Response<T> : where T : class
{
  public T Data {get; set;}
}

return new Response<IList<Users>>() { Data = db.Users};

【讨论】:

    【解决方案3】:

    大家好,谢谢您的回复,我还发现这篇文章完全解决了我的问题..

    MVC4: Include object name in Json

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-08
      • 2021-10-27
      • 1970-01-01
      相关资源
      最近更新 更多