Wcf c#服务中的Json流到数组
我对C#真的很差,希望你能帮我做以下几件事;我目前正在向我的WCF Web服务传递一个Json数组。我需要获取json数组并将其插入列表中。我不知道用C#反序列化。请向我建议实现这一目标的最佳方式。我的代码如下所示:Wcf c#服务中的Json流到数组,c#,json,wcf,deserialization,C#,Json,Wcf,Deserialization,我对C#真的很差,希望你能帮我做以下几件事;我目前正在向我的WCF Web服务传递一个Json数组。我需要获取json数组并将其插入列表中。我不知道用C#反序列化。请向我建议实现这一目标的最佳方式。我的代码如下所示: public String UpdateOrderAddress(Stream userInfo) { try { StreamReader reader = new StreamReade
public String UpdateOrderAddress(Stream userInfo)
{
try
{
StreamReader reader = new StreamReader(userInfo);
string JSONdata = reader.ReadToEnd();
if (JSONdata == null)
{
return "null";
}
return JSONdata; // Success !
}
catch (Exception e)
{
return e.ToString();
}
}
这是我从读卡器获取的字符串中的数据
[{"date":"2013-02-22 15:30:374:021","id":"1","description":"test","name":"test"},
"date":"2013-02-25 11:56:926:020","id":"2","description":"ghy","name":"fhh"},
"date":"2013-02-25 11:56:248:026","id":"3","description":"ghfm","name":"run"}]
您可以创建一个具有所需属性的代表性类来保存值并使用该类。调用指定类型的方法将JSON反序列化到代码中 类名中的链接供参考。您可以使用Newtonsoft.Json库。您需要做的只是:
List<YourClass> yourClassList = JsonConvert.DeserializeObject<List<YourClass>>(JSONdata);
List yourClassList=JsonConvert.DeserializeObject(JSONdata);
您可以找到更多信息,即使是示例您发布的代码也没有显示您是如何尝试反序列化json字符串的,因此我并不真正了解此处的相关性,但无论如何,这是如何将json反序列化为具体的C#类的
public class Data
{
public string Date {get;set;}
public int ID {get;set;}
public string Description {get;set;}
public string Name {get;set;}
}
列表
还要注意,我没有为Javascript对象中相应的date
字段使用DateTime字段,原因是示例日期不是有效的DateTime,或者至少无法从该字符串表示创建DateTime
对象。例如,“15:30:374:021”毫无意义-我会想象374是秒字段
您需要添加对System.Web.Extensions的引用才能使用JavascriptSerializer 您尝试过JSON.net吗?下面是一个示例:
var deserializedData = new JavaScriptSerializer().Deserialize<List<Data>>(jsonString);
string json = @"[{""date"":""2013-02-22 15:30:374:021"",""id"":""1"",""description"":""test"",""name"":""test""},
{""date"":""2013-02-25 11:56:926:020"",""id"":""2"",""description"":""ghy"",""name"":""fhh""},
{""date"":""2013-02-25 11:56:248:026"",""id"":""3"",""description"":""ghfm"",""name"":""run""}]";
var deserializedData = new JavaScriptSerializer().Deserialize<List<Data>>(json);