使用Json的两种方式

最近在做WEB的项目,经常要使用到第三方的API,而和他们传递数据大部分使用的都是Json格式的数据。而在工作中看到了两种不同的Json使用方式,自己总结了一下算自己的经验吧。
一、使用JObject对象
1.引入using System.Linq;
2.初始化
JObject Jparams=new JObject();
//json对象赋值,
Jparams.Add(new JProperty(“appid”,”123”);
Jparams.Add(new JProperty(“code”,”56”));
3.一般都要求将Json对象转成String通过post发送到服务器或客户端,服务器或客户端在解析string转换成Json对象
将Jparams转成string使用
string jsonString=Jparams.ToString();
4.解析收到的Json字符串使用JObject.Parse()方法
JObject Jparams=JObject.Parse(jsonString);
对Json对象中元素值
string code=Jparams[“code”].ToString();
string appid=Jparams[“appid”].ToString();
5.Json对象嵌套Json对象时,如下图:Json嵌套
我们可以看到data实际又是一个Json,注意是大括号,而非方括号,方括号是Json数组(大括号一般表示对象的属性,而方括号常表示并列的值,关于这个可以参考https://yq.aliyun.com/ziliao/167426)。接着嵌套的Json对象定义
JObject postPara=new JObject();
postPara.Add(new JProperty(“code”,”0000”));
JObject data=new JObject();
data.Add(new Property(“ewn”,”01,10,..”))
postPara.Add(“data”,data);
按上面直接将data这个JObject对象加到大的JObject中即可。
6嵌套的Json解析反过来只需要,Parse解析两次即可,如想得到data里面的“ewn”属性值,需执行下面两部:
JObject postRes=JObject.Parse(postPara);(此时假设postPara是json字符串格式,即将上述的postPara Json对象ToString())
string res=postRes[“data”].ToString();
然后在解析res字符串得到data对应的Json对象
JObject data =JObject.Parse(“res”);
string ewn=data[“ewn”].ToString();
二、使用字典类构造,然后在序列化成Json对象,这个稍微麻烦些,不过结构比较清晰初学者容易懂
这里写图片描述
然后将postPara序列化得到Json字符串
JsonConvert.SerializeObject(postPara);和上面string jsonString=Jparams.ToString();效果是一样的。

2.Json对象嵌套Json对象时,和第一种方法的思路类似,也是新建一个字典对象,放入首个对象中即可,如下图:
item是一个新的字典对象
3.Json解析
Json解析既可以按第一种方法解析,也可以用反序列化解析,如下图,其中ResponsePara 是一个类,其含有的属性值和json的属性相匹配,并有get和set方法,
ResponsePara ts = JsonConvert.DeserializeObject(responseData);如下图
使用
类的构造
返回的Josn,上图的类要按这个要求来生成,类生成可以在这个网址上实现<a href=http://www.bejson.com/convert/json2csharp/校验” title=”” />
解析后就可以直接用点调用就可以了。

猜你喜欢

转载自blog.csdn.net/yj310873325/article/details/77574568
今日推荐