VS中快速生成json数据格式对应的实体

时间:2024-01-20 18:45:21

JSON是一种取代XML的数据结构,和xml相比,它更小巧但描述能力却不差,由于它的小巧所以网络传输数据将减少更多流量从而加快速度。

JSON就是一串字符串 只不过元素会使用特定的符号标注。

{} 双括号表示对象

[] 中括号表示数组

"" 双引号内是属性或值

: 冒号表示后者是前者的值(这个值可以是字符串、数字、也可以是另一个数组或对象)

所以 {"name": "Michael"} 可以理解为是一个包含name为Michael的对象

而[{"name": "Michael"},{"name": "Jerry"}]就表示包含两个对象的数组

当然了,你也可以使用{"name":["Michael","Jerry"]}来简化上面一步,这是一个拥有一个name数组的对象。

ps:现在还有很多人存在一些误区,为什么{name:'json'}在检验时通过不了,那是因为JSON官网最新规范规定:

如果是字符串,那不管是键或值最好都用双引号引起来,所以上面的代码就是{"name":"json"}。

下面是一个json字符串,先去验证JSON数据格式(http://www.bejson.com/)如下:

{
"items_custom_get_response": {
"items": {
"item": [
{
"num_iid": 1,
"product_id": 0,
"skus": [
{
"created": null,
"modified": null,
"outer_id": null,
"price": null,
"properties": null,
"properties_name": "黑色",
"quantity": "2",
"sku_id": null
}
]
}
]
}
}
}

如果需要拿来用,肯定要反序列化,序列化成实体,结构如下:

public class Rootobject
{
public Items_Custom_Get_Response items_custom_get_response { get; set; }
} public class Items_Custom_Get_Response
{
public Items items { get; set; }
} public class Items
{
public List<Item> item { get; set; }
} public class Item
{
public int num_iid { get; set; }
public int product_id { get; set; }
public List<Sku> skus { get; set; }
} public class Sku
{
public object created { get; set; }
public object modified { get; set; }
public object outer_id { get; set; }
public object price { get; set; }
public object properties { get; set; }
public string properties_name { get; set; }
public string quantity { get; set; }
public object sku_id { get; set; }
}
使用VS2013或者2015可以快速生成对应的实体,就不需要自己动手写代码了。步骤如下:
1、复制json字符串,然后选择编辑->选择性粘贴->将JSON粘贴为类。 VS中快速生成json数据格式对应的实体然后就在类文件中生成下面文件:
public class Rootobject
{
public Items_Custom_Get_Response items_custom_get_response { get; set; }
} public class Items_Custom_Get_Response
{
public Items items { get; set; }
} public class Items
{
public Item[] item { get; set; }
} public class Item
{
public int num_iid { get; set; }
public int product_id { get; set; }
public Sku[] skus { get; set; }
} public class Sku
{
public object created { get; set; }
public object modified { get; set; }
public object outer_id { get; set; }
public object price { get; set; }
public object properties { get; set; }
public string properties_name { get; set; }
public string quantity { get; set; }
public object sku_id { get; set; }
}