为了账号安全,请及时绑定邮箱和手机立即绑定

C# 技巧(3) C# 操作 JSON

标签:
C#

RestAPI中, 经常需要操作json字符串,  需要把json字符串"反序列化"成一个对象, 也需要把一个对象"序列化"成一字符串。

C# 操作json,  比较简单。  本文介绍几种方法

 

阅读目录

  1. 步骤

  2. 了解json的语法

  3. 创建实体类的例子

  4. 自动生成JSON的实体类

  5. 使用第三方工具 Newtonsoft.Json.dll


步骤

Json 字符串 反序列化成对象 共需要2步:

第一步:建立相应的实体类

第二步: 调用方法把Json字符串"反序列化"成对象


了解json的语法

首先要了解json的语法,这样才能知道怎么创建实体类.

Json 的语法很简单, 就四条

 

  • 数据在名称/值对中

  • 数据由逗号分隔

  • 花括号保存对象

  • 方括号保存数组


创建实体类的例子

{"FirstName":"小坦克","LastName":"Tank","Age":30}

相应的实体类可以为

复制代码

    public class Person     {        public String FirstName        { get; set; }        public String LastName        { get; set; }        public int Age        { get; set; }    }

复制代码

 

自动生成JSON的实体类

一个复杂的实体类,我们自己去写的话,可能需要1个小时以上。 那有没有工具能直接生成实体类呢,这样能方便太多了。  当然有

http://jsonclassgenerator.codeplex.com/  ----开源的winform工具。

 

 

使用第三方工具 Newtonsoft.Json.dll

优点:  使用非常方便.   看个例子就知道怎么用了

下载地址   http://james.newtonking.com/json

 

代码示例:

复制代码

using System;using System.Collections.Generic;using System.Linq;using System.Text;using Newtonsoft.Json;namespace JsonDemo{    class Program    {        static void Main(string[] args)        {            string personJson = "{ 'FirstName': '小坦克','LastName':'Tank xiao', 'Age':'30', 'Books':[{'BookName':'c#', 'Price':'29.9'},{'BookName':'Mac编程', 'Price':'39.9'}]}";            string allMoveJson = @"[{ 'FirstName': '小坦克','LastName':'Tank xiao', 'Age':'30', 'Books':[{'BookName':'c#', 'Price':'29.9'},{'BookName':'Mac编程', 'Price':'39.9'}]},{                              'FirstName': '小坦克2','LastName':'Tank xiao2', 'Age':'40', 'Books':[{'BookName':'c#', 'Price':'29.9'},{'BookName':'Mac编程', 'Price':'39.9'}]}]";            // 反序列化 单个对象            Person oneMovie = JsonConvert.DeserializeObject<Person>(personJson);            // 反序列化 对象集合            List<Person> allMovie = JsonConvert.DeserializeObject<List<Person>>(allMoveJson);            Console.WriteLine(oneMovie.FirstName);            Console.WriteLine(allMovie[1].FirstName);            // 序列化            string afterJson = JsonConvert.SerializeObject(allMovie);        }    }    public class Person    {        public String FirstName        { get; set; }        public String LastName        { get; set; }        public int Age        { get; set; }        public List<Book> Books        { get; set; }    }    public class Book    {        public string BookName        { get; set; }        public string Price        { get; set; }    }}

复制代码

 

 

附: C# 使用技巧 (连载中, 敬请期待)

C# 技巧(1) C# 转换时间戳

C# 技巧(2) C# 操作 JSON

 

 


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消