JSON序列化和反序列化在C# [英] json serialization and deserialization in c#
问题描述
我创建sample.Please企业的一个粗略的JSON数据,并试图帮助我所需要的解决方案。
I have created a rough json data sample.Please corporate and try to help me for the required solution.
我想现在的阶级结构以及如何检索,也使通过C#这种格式的JSON。我有四张桌子,tblcategory(包括所有类别),tblcatmapping(包含类映射),tblitemmapping(包含映射项目和类别),并tblitem(包含所有项目)
I want to now the class structures and how to retrieve and also make json of this format through c#.I have four tables-tblcategory(contains all categories),tblcatmapping(contains the category mapping),tblitemmapping(contains the mapping of item and category) and tblitem(contains all the items)
[
{
"CATID": "10001",
"CATNAME": "food",
"CATTYPE": "top",
"CATDESC": "contains different types of food",
"CATIMGPATH": "Z:\\TFS workspace\\DineGenie - Dev\\DineGenie - Dev\\Filestore\\category\\09-09-2013 11-41-29-food.jpg",
"CATSUBCAT": [
{
"CATID": "10002",
"CATNAME": "veg",
"CATTYPE": "sub",
"CATDESC": "contains different drinks",
"CATIMGPATH": "Z:\\TFS workspace\\DineGenie - Dev\\DineGenie - Dev\\Filestore\\category\\09-09-2013 12-15-19-beverages.jpeg",
"CATSUBCAT": [
{
"CATID": "10004",
"CATNAME": "nort-indian",
"CATTYPE": "sub",
"CATDESC": "contains different drinks",
"CATIMGPATH": "Z:\\TFS workspace\\DineGenie - Dev\\DineGenie - Dev\\Filestore\\category\\09-09-2013 12-15-19-beverages.jpeg",
"CATSUBCAT": [],
"CATITEM": [
{
"ITEMID": "20002",
"ITEMNAME": "dosa",
"ITEMTYPE": "item",
"ITEMDESC": "contains different dosa",
"ITEMIMGPATH": "Z:\\TFS workspace\\DineGenie - Dev\\DineGenie - Dev\\Filestore\\category\\09-09-2013 12-15-19-beverages.jpeg"
},
{
"ITEMID": "20003",
"ITEMNAME": "idli",
"ITEMTYPE": "item",
"ITEMDESC": "contains different idli",
"ITEMIMGPATH": "Z:\\TFS workspace\\DineGenie - Dev\\DineGenie - Dev\\Filestore\\category\\09-09-2013 12-15-19-beverages.jpeg"
}
]
},
{
"CATID": "10005",
"CATNAME": "south-indian",
"CATTYPE": "sub",
"CATDESC": "contains different drinks",
"CATIMGPATH": "Z:\\TFS workspace\\DineGenie - Dev\\DineGenie - Dev\\Filestore\\category\\09-09-2013 12-15-19-beverages.jpeg",
"CATSUBCAT": [],
"CATITEM": []
}
],
"CATITEM": []
},
{
"CATID": "10003",
"CATNAME": "non-veg",
"CATTYPE": "sub",
"CATDESC": "contains different drinks",
"CATIMGPATH": "Z:\\TFS workspace\\DineGenie - Dev\\DineGenie - Dev\\Filestore\\category\\09-09-2013 12-15-19-beverages.jpeg",
"CATSUBCAT": [
{
"CATID": "10004",
"CATNAME": "nort-indian",
"CATTYPE": "sub",
"CATDESC": "contains different drinks",
"CATIMGPATH": "Z:\\TFS workspace\\DineGenie - Dev\\DineGenie - Dev\\Filestore\\category\\09-09-2013 12-15-19-beverages.jpeg",
"CATSUBCAT": [],
"CATITEM": []
},
{
"CATID": "10005",
"CATNAME": "south-indian",
"CATTYPE": "sub",
"CATDESC": "contains different drinks",
"CATIMGPATH": "Z:\\TFS workspace\\DineGenie - Dev\\DineGenie - Dev\\Filestore\\category\\09-09-2013 12-15-19-beverages.jpeg",
"CATSUBCAT": [],
"CATITEM": []
}
],
"CATITEM": []
}
],
"CATITEM": []
},
{
"CATID": "10006",
"CATNAME": "beverages",
"CATTYPE": "top",
"CATDESC": "contains different drinks",
"CATIMGPATH": "Z:\\TFS workspace\\DineGenie - Dev\\DineGenie - Dev\\Filestore\\category\\09-09-2013 12-15-19-beverages.jpeg",
"CATSUBCAT": [
{
"CATID": "10007",
"CATNAME": "alcholic-drinks",
"CATTYPE": "top",
"CATDESC": "contains different drinks",
"CATIMGPATH": "Z:\\TFS workspace\\DineGenie - Dev\\DineGenie - Dev\\Filestore\\category\\09-09-2013 12-15-19-beverages.jpeg",
"CATSUBCAT": [],
"CATITEM": []
},
{
"CATID": "10008",
"CATNAME": "non-alcholic-drinks",
"CATTYPE": "top",
"CATDESC": "contains different drinks",
"CATIMGPATH": "Z:\\TFS workspace\\DineGenie - Dev\\DineGenie - Dev\\Filestore\\category\\09-09-2013 12-15-19-beverages.jpeg",
"CATSUBCAT": [],
"CATITEM": []
}
],
"CATTITEM": []
},
{
"CATID": "10009",
"CATNAME": "fast food",
"CATTYPE": "top",
"CATDESC": "contains various fast foods",
"CATIMGPATH": "Z:\\TFS workspace\\DineGenie - Dev\\DineGenie - Dev\\Filestore\\category\\09-09-2013 12-22-08-fastfood1.jpg",
"CATSUBCAT": [],
"CATITEM": [
{
"ITEMID": "20002",
"ITEMNAME": "dosa",
"ITEMTYPE": "item",
"ITEMDESC": "contains different dosa",
"ITEMIMGPATH": "Z:\\TFS workspace\\DineGenie - Dev\\DineGenie - Dev\\Filestore\\category\\09-09-2013 12-15-19-beverages.jpeg"
},
{
"ITEMID": "20003",
"ITEMNAME": "idli",
"ITEMTYPE": "item",
"ITEMDESC": "contains different idli",
"ITEMIMGPATH": "Z:\\TFS workspace\\DineGenie - Dev\\DineGenie - Dev\\Filestore\\category\\09-09-2013 12-15-19-beverages.jpeg"
}
]
},
{
"CATID": "10015",
"CATNAME": "test",
"CATTYPE": "top",
"CATDESC": "contains test categories",
"CATIMGPATH": "Z:\\TFS workspace\\DineGenie - Dev\\DineGenie - Dev\\Filestore\\category\\19-09-2013 15-46-19-southindian2.png",
"CATSUBCAT": [],
"CATITEM": []
}
]
从下面的建议,我尝试用 http://json2csharp.com/到JSON样品C#code转换>以下是:
阶级结构
public class RootObject
{
public string CATID { get; set; }
public string CATNAME { get; set; }
public string CATTYPE { get; set; }
public string CATDESC { get; set; }
public string CATIMGPATH { get; set; }
public List<object> CATSUBCAT { get; set; }
public List<object> CATITEM { get; set; }
public List<object> CATTITEM { get; set; }
}
但我不是在上面的对象中获取是什么类型的
But i am not getting in the above object is of what type
推荐答案
根据您正在使用的Visual Studio的版本,你可以尝试编辑 - &GT;选择性粘贴 - &GT;粘贴JSON作为类
。
Depending on the Visual Studio version you're working with, you can try Edit -> Paste Special -> Paste JSON As Classes
.
<一个href=\"http://blogs.msdn.com/b/webdev/archive/2012/12/18/paste-json-as-classes-in-asp-net-and-web-tools-2012-2-rc.aspx\"相对=nofollow称号=示例粘贴JSON作为类>在这里看到的例子。
有关序列化和反序列化,我可以强烈推荐 JSON.NET 。
它具有比默认的.NET序列化的方式更多的功能。
For serialization and deserialization I can highly recommend JSON.NET. It has way more features than the default .NET serializers.
如果您有类和使用JSON.NET,你可以反序列化的字符串是这样的:
If you have the classes and use JSON.NET, you can deserialize your string like this:
MyClass[] instances = JsonConvert.DeserializeObject<MyClass[]>(jsonString);
这篇关于JSON序列化和反序列化在C#的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!