我的WCF
服务存在一个奇怪的问题,该服务以JSON
格式返回数据。我想根据客户端发送的请求返回有关“客户”的信息。
客户可以要求他们需要哪些有关客户的信息,而服务只需发送有关该客户的信息。
例如:如果客户要求一个客户列表,并说他们想要每个客户的名字,姓氏,城市,则服务器应发送一个带有每个字段名称和对应值的json响应
就像是…
[
{"firstname":"john","lastname":"Goodman","city" :"NY"},
{"firstname":"brad","lastname":"newman","city" :"LA"}
]
如果客户仅要求提供具有ID和城市字段的客户列表,则响应应如下所示
[
{"id" :"1234","city" :"NY"},
{"id":"1235","city" :"LA"}
]
我最初的设计是实现一个“ Customer”类,然后将每个可能的“
field”作为该类的一个域。然后,在服务方法内部,我获得了由客户端指定的字段列表,并仅设置了那些属性来实例化客户对象。
我的运营合同看起来像这样
[OperationContract]
[WebGet(BodyStyle = WebMessageBodyStyle.Bare, ResponseFormat = WebMessageFormat.Json, UriTemplate = "Customers?fields={value}")]
List<Customer> GetCustomers(string value);
但是问题是当我用“ DataContract”修饰类并且将每个字段设置为“ DataMember”
…时。如果未设置某些属性,则在发送给客户端时它们仍会反序列化为NULL。我不希望这种情况发生。
另外,客户可能的字段列表很长,因此类别变得非常大。我宁愿将这些字段存储为服务中的枚举集合,而不是类的字段。
然后,我想到让Operation返回a
IDictionary<string,object>
,然后将每个字段和值迭代地添加到此集合。那是行不通的,因为当字典被序列化时,它会显示{"Key:dfas", "Value:34"
}等,而不是我想要的
所以我有点卡住了。解决此问题的最佳方法是什么?
我可以这样标记我[DataContract]
的方式:如果[DataMember]
未设置属性,即为null,则根本不应该将其序列化并发送给客户端?
您可以标记每个数据成员,以便它为null时不会被序列化。基本部分是:EmitDefaultValue = false
[DataContract]
public class Person
{
[DataMember(EmitDefaultValue = false)]
public string id { get; set; }
[DataMember(EmitDefaultValue = false)]
public string firstname { get; set; }
[DataMember(EmitDefaultValue = false)]
public string lastname { get; set; }
[DataMember(EmitDefaultValue = false)]
public string city { get; set; }
}
问题内容: 在我的前端JavaScript应用程序中,我发出了ajax请求以从服务器获取数据。一旦获得数据,我想将该信息返回给视图。 我该怎么做? 问题答案: 而不是从:返回来传递给函数。
我正在使用下面的gql查询生成一个GraphQL请求。 但是当我在下面的代码中注销它时,它返回未定义的。 知道我做错了什么吗?该怎么纠正?
我想从表视图SACY_BOOK(它是SAP中始终实现的训练表之一)中提取一些数据到我的实习表wa_booking中,通过NUMC字段PA_ANUM进行过滤。到目前为止我得到的是: 代码应该适用于拥有ABAP编辑器的每个人,因为它只使用SAP提供的示例表。 因此,debugger向我显示,如果我选择某个公司,例如agencynum“00000108”,这个确切的数字将发送到pa_anum,前面有0和
我的 sql 查询为给定员工返回特定周的正确结果 例如,我的员工列表是(员工1,员工2,员工3,员工4) 如果emp4在该周内未完成任何工作,则该员工的行根本不会返回。 我的疑问如下: 如果该周的员工记录仍然不存在,则员工姓名应显示为0
你能帮我做一下ElasticSearch吗?建议:https://www.elastic.co/guide/en/ElasticSearch/reference/5.1/search-suggesters-completion.html 我在ES索引中创建了类型 curl-xput“localhost:9200/tass_suggest_test/_mapping/company?pretty”-
问题内容: 我为一个朋友做了一些网络工作,帮助了他。他需要的一部分是在他的站点上更改几段文字的简单方法。与其让他编辑HTML,我决定提供一个带有消息的XML文件,然后我使用jQuery将它们从文件中拉出并插入到页面中。 它的效果非常好…在Firefox和Chrome中,在IE7中效果不佳。我希望你们中的一个能告诉我原因。我做了一个公平的但谷歌搜索,但是找不到我想要的东西。 这是XML: 这是我的j