C# JSON字符串反序列化为C列表
我试图将WCF服务中的JSON字符串反序列化到显示空输出的C列表中 WCF服务 GetJSONString方法返回JSON字符串 C类模型 现在将json反序列化到列表中 输出: **我们之前已经尝试过,但它返回null**C# JSON字符串反序列化为C列表,c#,json,wcf,C#,Json,Wcf,我试图将WCF服务中的JSON字符串反序列化到显示空输出的C列表中 WCF服务 GetJSONString方法返回JSON字符串 C类模型 现在将json反序列化到列表中 输出: **我们之前已经尝试过,但它返回null** var results = JsonConvert.DeserializeObject<List<site>>(s); 上述代码结果返回Null 请建议我解决这个问题 谢谢 Venkatesh您的JSON字符串输出是一个列表。RootObject
var results = JsonConvert.DeserializeObject<List<site>>(s);
上述代码结果返回Null
请建议我解决这个问题
谢谢
Venkatesh您的JSON字符串输出是一个列表。RootObject类不是列表,但包含类型为List的属性站点。您应该尝试以下方法: 第一个解决方案: 第四:在参考数据合同后,在客户端
using (HttpWebResponse response = request.GetResponse() as HttpWebResponse)
{
/* Deserializing json data from service */
DataContractJsonSerializer deserializer = new DataContractJsonSerializer(typeof(List<Site>));
var result= deserializer.ReadObject(response.GetResponseStream());
}
结果,您将得到与JSON反序列化响应相对应的列表。我希望你能找到一种方法使它在你的代码中工作。如果需要,请随时与我联系。我们尝试了您的建议,但未能将JSON字符串转换为列表集合,它返回null。请检查更新的代码。@user3167868第二个解决方案对您有效吗?是的。第二个解决方案很好,谢谢你的帮助help@Venkatesh很高兴这有帮助。请指出答案作为解决方案,并/或投赞成票?非常感谢。
"\"{\\\"Sites\\\" : [{\\\"EQ_DESC\\\" : \\\"SIERRA India\\\",\\\"EQ_CODE\\\" : \\\"1\\\"},{\\\"EQ_DESC\\\" : \\\"SIERRA Dubai\\\",\\\"EQ_CODE\\\" : \\\"24\\\"},{\\\"EQ_DESC\\\" : \\\"SIERRA Malaysia\\\",\\\"EQ_CODE\\\" : \\\"99\\\"},{\\\"EQ_DESC\\\" : \\\"SIERRA US\\\",\\\"EQ_CODE\\\" : \\\"100\\\"},{\\\"EQ_DESC\\\" : \\\"Mars India\\\",\\\"EQ_CODE\\\" : \\\"110\\\"},{\\\"EQ_DESC\\\" : \\\"???\\\",\\\"EQ_CODE\\\" : \\\"151\\\"},{\\\"EQ_DESC\\\" : \\\"turkey\\\",\\\"EQ_CODE\\\" : \\\"2299\\\"},{\\\"EQ_DESC\\\" : \\\"SIERRA Infosys\\\",\\\"EQ_CODE\\\" : \\\"2331\\\"},{\\\"EQ_DESC\\\" : \\\"Infosys\\\",\\\"EQ_CODE\\\" : \\\"2338\\\"}]}\""
public class Site
{
public string EQ_DESC { get; set; }
public string EQ_CODE { get; set; }
}
public class RootObject
{
public List<Site> Sites { get; set; }
}
using (HttpWebResponse response = request.GetResponse() as HttpWebResponse)
{
using (StreamReader reader = new StreamReader(response.GetResponseStream()))
{
/* Deserializing json data from service */
var jsoncontent = reader.ReadToEnd();
string s = jsoncontent.ToString();
var results = JsonConvert.DeserializeObject<RootObject>(s);
var results = JsonConvert.DeserializeObject<Rootobject>(s);
var results = JsonConvert.DeserializeObject<List<site>>(s);
var results = JsonConvert.DeserializeObject<List<Site>>(s);
public class RootObject : List<Site>
{
//Whatever you want
}
var results = JsonConvert.DeserializeObject<RootObject>(s);
[ServiceContract]
public interface IServiceContract
{
[OperationContract]
[WebInvoke(Method = "POST", BodyStyle = WebMessageBodyStyle.WrappedRequest,
RequestFormat = WebMessageFormat.Json,
ResponseFormat = WebMessageFormat.Json)]
List<Site> getuserSite(String UserCode);
}
public class ServiceContract : IServiceContract
{
public List<Site> getuserSite(String UserCode)
{
//Do whatever you want that return a List<Site>
}
}
[DataContract]
public class Site
{
[DataMember]
public string EQ_DESC { get; set; }
[DataMember]
public string EQ_CODE { get; set; }
}
using (HttpWebResponse response = request.GetResponse() as HttpWebResponse)
{
/* Deserializing json data from service */
DataContractJsonSerializer deserializer = new DataContractJsonSerializer(typeof(List<Site>));
var result= deserializer.ReadObject(response.GetResponseStream());
}