JSON数据格式解析(面向对象概念的体现)
2017-12-06 18:21
477 查看
突然发现好久没更新文章了,一时兴起来讲讲json数据格式,主要是针对新手而言,不喜勿喷。
其实网上针对于json的讲解太多了,那我为什么还要来讲这个东西,是因为我发现很多初学的朋友,他们对于json数据无法抽象出实体来,而网上很多资料又仅仅只是讲了如何解析。这其实是很不利于初学者的学习。
那么我们废话不多说,直接开干
......
对于Json的定义,我这边就不阐述了,如果说有读者朋友都不知道什么是json数据的话,我的建议是先暂停本篇的阅读,先去了解什么是json数据后再来看。
笔者这边会使用c#这么一门面向对象的语言对json进行解析,也主要是帮助初学的朋友做到看一眼json字符串在代码上就能知道应该抽象出哪几个类,类中的属性又该有哪些。这一点我发觉在初学的朋友身上很难做到,特别是对于那些连面向对象基本概念都没形成的朋友而言就更难了
首先我们先来看下Json的结构,
Json数据结构分为两种:一种是对象,一种是数组
下边直接先上一个对象结构式的Json数据:
{ "firstName": "Brett", "lastName":"McLaughlin", "email": "aaaa" }
这种格式想必很多朋友都有见到过,那么既然这是一个对象,那么我们就很容易能联想到类对象,然而,有对象之前肯定得要有这个类的抽象模型存在,也就是类,那么在.net平台中我们就可以很容易的使用c#语言抽象出一个类了
那么我们最终就可以通过“某种途径”将上述json数据在代码中转变为一个类模型出来了,最终可以通过该类对象得到firstName,lastName和emil的值了。至于某种途径,读者就可以自行百度了,太多太多了
。
趁热打铁,接着我们再上一个数组结构式的Json数据
{ "authors": [
{ "firstName": "Brett", "lastName":"McLaughlin", "email": "aaaa" },
{ "firstName": "Jason", "lastName":"Hunter", "email": "bbbb"},
{ "firstName": "Elliotte", "lastName":"Harold", "email": "cccc" }
]}
貌似很复杂,其实一分析就是3个People类对象而言,那么我们能否写一个类里边就包含了3个类People的类对象,
如下:
public class Authors
{
public People people1{get;set;}
public People people2{get;set;}
public People people3{get;set;}
}
那有的朋友是否会想,假如有10条记录或者上百条记录岂不是要定义10个或者上百个属性,这样太可怕了,所以,当我们使用上述的“某些途径”在代码中解析该json数据的时候,想要正确的解析,我们的类就不能这样定义,我们必须写成集合的形式,这里我们使用列表把它装载起来。
public class Authors
{
public List<People> authors{get;set;}
}
OK,到这里几乎是本篇的结尾了, 那么至于嵌套的写法我这边
突然有个小灵感, 我们反着来:不知道有的读者是不是会想如果Authors类中除了authors字段还有别的字段,那么怎么在json字符中显示呢?比如说:
public class XXX
{
public List<People> authors{get;set;} //作者对象列表
public string country{get;set;} //属于哪个国家
public bool isUSA{get;set;} //是否属于美国
public List<People> musicer{get;set;} //音乐家对象列表
}
其实,也很容易,XXX是个类那么对应这json字符串就有{ }一对括号了,authors是个集合,那么也就是
{
"authors":
[
]
}
这样的结构了,country是个string值,isUSA是个bool值
那么又有以下的结构:
{
"authors":
[
],
"country":"xxx",
"isUSA":false,
}
最后,是一个musicer集合,所以,在加上一个musicer集合
{
"authors":
[
],
"country":"xxx",
"isUSA":false,
"musicer":
[
]
}
那么最后的最后,我们我们补全authors和musicer内部
好了,时间也不早了,文章也到尾声了。希望对初学的朋友能有所帮助
写文不易,转载请注明出处。
欢迎拍砖,狠狠的拍QQ:2306798290
继续流浪去远方......
其实网上针对于json的讲解太多了,那我为什么还要来讲这个东西,是因为我发现很多初学的朋友,他们对于json数据无法抽象出实体来,而网上很多资料又仅仅只是讲了如何解析。这其实是很不利于初学者的学习。
那么我们废话不多说,直接开干
......
对于Json的定义,我这边就不阐述了,如果说有读者朋友都不知道什么是json数据的话,我的建议是先暂停本篇的阅读,先去了解什么是json数据后再来看。
笔者这边会使用c#这么一门面向对象的语言对json进行解析,也主要是帮助初学的朋友做到看一眼json字符串在代码上就能知道应该抽象出哪几个类,类中的属性又该有哪些。这一点我发觉在初学的朋友身上很难做到,特别是对于那些连面向对象基本概念都没形成的朋友而言就更难了
首先我们先来看下Json的结构,
Json数据结构分为两种:一种是对象,一种是数组
下边直接先上一个对象结构式的Json数据:
{ "firstName": "Brett", "lastName":"McLaughlin", "email": "aaaa" }
这种格式想必很多朋友都有见到过,那么既然这是一个对象,那么我们就很容易能联想到类对象,然而,有对象之前肯定得要有这个类的抽象模型存在,也就是类,那么在.net平台中我们就可以很容易的使用c#语言抽象出一个类了
public class People { public string firstName{get;set;} public string lastName{get;set;} public string email{get;set;} }
那么我们最终就可以通过“某种途径”将上述json数据在代码中转变为一个类模型出来了,最终可以通过该类对象得到firstName,lastName和emil的值了。至于某种途径,读者就可以自行百度了,太多太多了
。
趁热打铁,接着我们再上一个数组结构式的Json数据
{ "authors": [
{ "firstName": "Brett", "lastName":"McLaughlin", "email": "aaaa" },
{ "firstName": "Jason", "lastName":"Hunter", "email": "bbbb"},
{ "firstName": "Elliotte", "lastName":"Harold", "email": "cccc" }
]}
貌似很复杂,其实一分析就是3个People类对象而言,那么我们能否写一个类里边就包含了3个类People的类对象,
如下:
public class Authors
{
public People people1{get;set;}
public People people2{get;set;}
public People people3{get;set;}
}
那有的朋友是否会想,假如有10条记录或者上百条记录岂不是要定义10个或者上百个属性,这样太可怕了,所以,当我们使用上述的“某些途径”在代码中解析该json数据的时候,想要正确的解析,我们的类就不能这样定义,我们必须写成集合的形式,这里我们使用列表把它装载起来。
public class Authors
{
public List<People> authors{get;set;}
}
OK,到这里几乎是本篇的结尾了, 那么至于嵌套的写法我这边
突然有个小灵感, 我们反着来:不知道有的读者是不是会想如果Authors类中除了authors字段还有别的字段,那么怎么在json字符中显示呢?比如说:
public class XXX
{
public List<People> authors{get;set;} //作者对象列表
public string country{get;set;} //属于哪个国家
public bool isUSA{get;set;} //是否属于美国
public List<People> musicer{get;set;} //音乐家对象列表
}
其实,也很容易,XXX是个类那么对应这json字符串就有{ }一对括号了,authors是个集合,那么也就是
{
"authors":
[
]
}
这样的结构了,country是个string值,isUSA是个bool值
那么又有以下的结构:
{
"authors":
[
],
"country":"xxx",
"isUSA":false,
}
最后,是一个musicer集合,所以,在加上一个musicer集合
{
"authors":
[
],
"country":"xxx",
"isUSA":false,
"musicer":
[
]
}
那么最后的最后,我们我们补全authors和musicer内部
{ "authors": [ { "firstName": "Brett", "lastName":"McLaughlin", "email": "aaaa" }, { "firstName": "Jason", "lastName":"Hunter", "email": "bbbb"}, { "firstName": "Elliotte", "lastName":"Harold", "email": "cccc" } ], "country":"China", "isUSA":false, "musicer": [ { "firstName": "Brett", "lastName":"McLaughlin", "email": "aaaa" }, { "firstName": "Jason", "lastName":"Hunter", "email": "bbbb" }, { "firstName": "Elliotte", "lastName":"Harold", "email": "cccc" } ] }
好了,时间也不早了,文章也到尾声了。希望对初学的朋友能有所帮助
写文不易,转载请注明出处。
欢迎拍砖,狠狠的拍QQ:2306798290
继续流浪去远方......
相关文章推荐
- jquery解析json格式数据的方法(对象、字符串)
- Android数据格式解析对象JSON用法(转)
- 后台将对象转换为json格式,前台js解析json数据,将字符串转化为数组
- Android数据格式解析对象JSON用法
- Android数据格式解析对象JSON用法
- 前台js获取到后台json数据,eval解析json后,日期(object)对象转换为date日期格式显示
- Android数据格式解析对象JSON用法
- Android数据格式解析对象JSON用法
- eval解析JSON中的注意点 在JS中将JSON的字符串解析成JSON数据格式,一般有两种方式: 1.一种为使用eval()函数。 2. 使用Function对象来进行返回解析。 使用eval
- Android数据格式解析对象JSON用法
- Android数据格式解析对象JSON用法
- Android数据格式解析对象JSON用法
- Android数据格式解析对象JSON用法
- gson解析json数据格式为object对象
- Android 数据解析格式和JSON对象
- Android数据格式解析对象JSON用法
- Android数据格式解析对象JSON用法
- jquery解析json格式数据的方法(对象、字符串)
- Android-数据格式解析对象JSON用法
- spring mvc 接收json、xml 数据格式,自动解析成对象