【发布时间】:2017-01-11 10:36:27
【问题描述】:
以下是我的服务在调用时返回的有效 JSON:
[{
"CCRQ": "2006/1/26 0:00:00",
"CLXH": "CA6510B1",
"CarBodyColor": "color"
}]
下面是我的包含数据成员的代码:
[DataContract]
public class Response
{
[DataMember(Name = "CCRQ")]
public string CCRQ { get; set; }
[DataMember(Name = "CLXH")]
public string CLXH { get; set; }
[DataMember(Name = "CarBodyColor")]
public string CarBodyColor { get; set; }
}
但是,我正在请求服务并在所有数据成员中接收 null。
public static Response MakeRequest(string requestUrl)
{
HttpWebRequest request = WebRequest.Create(requestUrl) as HttpWebRequest;
using (HttpWebResponse response = request.GetResponse() as HttpWebResponse)
{
DataContractJsonSerializer jsonSerializer = new DataContractJsonSerializer(typeof(Response));
object objResponse = jsonSerializer.ReadObject(response.GetResponseStream());
Response jsonResponse = objResponse as Response;
return jsonResponse;
}
}
为什么我的所有属性都为空?
【问题讨论】:
-
'objResponse' 变量是否为空?但无论如何,问题可能在于“typeof(Response)”,因为 JSON 的类型是“List
”而不是“Response”。 -
根据您对
[DataContract]的使用,我假设您的 Web 服务正在使用 WCF。你为什么要创建HttpWebRequest?您可以为您的项目添加服务引用,并为您处理所有反序列化。 -
@Julo,问题是由于缺少列表。问题已解决。谢谢:)
-
@Chris Pickford,谢谢,该服务没有使用 WCF,我相信它是基于 Java 的。
标签: c# json rest serialization json-deserialization