访问网站:http://www.bejson.com/go.php?u=http://www.bejson.com/xml2json
JSON是一种取代XML的数据结构,和xml相比,它更小巧但描述能力却不差,由于它的小巧所以网络传输数据将减少更多流量从而加快速度,
那么,JSON到底是什么?
JSON就是一串字符串 只不过元素会使用特定的符号标注。
{} 双括号表示对象
[] 中括号表示数组
"" 双引号内是属性或值
: 冒号表示后者是前者的值(这个值可以是字符串、数字、也可以是另一个数组或对象)
所以 {"name": "Michael"} 可以理解为是一个包含name为Michael的对象
而[{"name": "Michael"},{"name": "Jerry"}]就表示包含两个对象的数组
当然了,你也可以使用{"name":["Michael","Jerry"]}来简化上面一部,这是一个拥有一个name数组的对象
JSON着色工具http://www.bejson.com/go.html?u=http://bejson.com/aboutjson.php
[
{
"ID": "1",
"Name": [
"p1",
"p1"
],
"Sex": "s1"
},
{
"ID": "2",
"Name": [
"p2",
"p2"
],
"Sex": "s2"
},
{
"ID": "3",
"Name": [
"p3",
"p3"
],
"Sex": "s3"
}
]
备注:
使用Newtonsoft.Json.JsonConvert类
Newtonsoft.Json.JsonConvert类是非微软提供的一个JSON序列化和反序列的开源免费的类库(下载网址是:http://www.codeplex.com/json/),它提供了更灵活的序列化和反序列化控制,
public
class Person1
{
///
<summary>
///
///
</summary>
public
string ID {
get;
set; }
private List<
string> _name =
new List<
string>();
///
<summary>
///
///
</summary>
public List<
string> Name
{
get
{
return _name;
}
set
{
_name = value;
}
}
///
<summary>
///
///
</summary>
public
string Sex {
get;
set; }
}
View Code
public
void dotest()
{
Person1 p1 =
new Person1();
p1.ID =
"
1
";
p1.Name.Add(
"
p1
");
p1.Name.Add(
"
p1
");
p1.Sex =
"
s1
";
Person1 p2 =
new Person1();
p2.ID =
"
2
";
p2.Name.Add(
"
p2
");
p2.Name.Add(
"
p2
");
p2.Sex =
"
s2
";
Person1 p3 =
new Person1();
p3.ID =
"
3
";
p3.Name.Add(
"
p3
");
p3.Name.Add(
"
p3
");
p3.Sex =
"
s3
";
List<Person1> lp =
new List<Person1>();
lp.Add(p1);
lp.Add(p2);
lp.Add(p3);
//
对象序列化为json字符串
string restult = Newtonsoft.Json.JavaScriptConvert.SerializeObject(lp);
//
反序列化成对象。
List<Person1> list = (List<Person1>)Newtonsoft.Json.JavaScriptConvert.DeserializeObject(restult,
typeof(List<Person1>));
//
根据索引读取Json的值。
JavaScriptArray stocks =
new JavaScriptArray();
var json = (JavaScriptArray)Newtonsoft.Json.JavaScriptConvert.DeserializeObject(restult);
for (
int j =
0; j < stocks.Count; j++)
{
JavaScriptObject jso = (JavaScriptObject)stocks[j];
string id=jso[
"
ID
"].ToString();
}
System.Console.Write(restult);
}
View Code