我有一个silverlight Web应用程序。在这个应用程序中,我使用WebClient
类调用JSP页面。现在,JSP以JSON格式返回响应
{
"results":[{"Value":"1","Name":"Advertising"},
{"Value":"2","Name":"Automotive Expenses"},{"Value":"3","Name":"Business Miscellaneous"}]
}
以上响应已分配给我的Stream对象。
我有一个c#class CategoryType
public class CategoryType
{
public string Value{get;set;}
public string Name{get;set;}
}
我的目标是将响应转换为Collection<CategoryType>
并在我的C#代码中使用它
截至目前,我正在尝试使用DataContractJSONSerialiser
。但不确定是否有一种简单而有效的方法来做到这一点。任何帮助将不胜感激
答案 0 :(得分:2)
它的JSON并将其转换为对象,您需要将其反序列化为对象。 Microsoft和第三方提供了许多工具。
你似乎走得很对。
我使用过JavascriptSerializer
。在此处查看其用途http://shekhar-pro.blogspot.com/2011/01/serializing-and-deserializing-data-from.html
或者使用一个很棒的库JSON.Net,甚至在微软发布这些库之前就已经广泛使用了。{/ p>
<强>更新强>
正如您在评论中提到的,您希望将其转换为Collection,您可以这样做:
创建数组类来表示项目数组。
public class CategoryTypeColl
{
public CategoryType[] results {get;set;}
}
并在您的代码中
Collection<CategoryType> ctcoll = new Collection<CategoryType>();
JavaScriptSerializer jsr = new JavaScriptSerializer();
CategoryTpeColl ctl = jsr.Deserialize<CategoryTypeColl>(/*your JSON String*/);
List<CategoryType> collection = (from item in ctl.results
select item).ToList();
//If you have implemented Icollection then you can use yourcollection and Add items in a foreach loop.