一、添加解析json用的dll文件
1.右键项目文件—添加----新建文件夹–将文件夹命名为lib
2.将解析Json所用Newtonsoft.Json.dll文件放在lib文件夹下。
3.右键点击项目文件----添加引用
4.在弹出框中选择浏览–找到lib文件夹—选择Newtonsoft.Json.dll----确定
5.此时可以看到dll文件已经被引用进来了
二、创建解析和序列化json对象的工具类ObjectToJsonHelper.cs
1.右键项目文件—添加----类
2.在弹出框中将文件命名为ObjectToJsonHelper.cs----添加
3.编写ObjectToJsonHelper.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Newtonsoft.Json;
using System.IO;
namespace TestJson
{
public static class ObjectToJsonHelper
{
/// <summary>
/// 将对象序列化为JSON格式
/// </summary>
/// <param name="o">对象</param>
/// <returns>json字符串</returns>
public static string SerializeObject(object o)
{
string json = JsonConvert.SerializeObject(o);
return json;
}
/// <summary>
/// 解析JSON字符串生成对象实体
/// </summary>
/// <typeparam name="T">对象类型</typeparam>
/// <param name="json">json字符串(eg.{"ID":"112","Name":"石子儿"})</param>
/// <returns>对象实体</returns>
public static T DeserializeJsonToObject<T>(string json) where T : class
{
try
{
JsonSerializer serializer = new JsonSerializer();
StringReader sr = new StringReader(json);
object o = serializer.Deserialize(new JsonTextReader(sr), typeof(T));
T t = o as T;
return t;
}
catch (Exception ex)
{
return null;
}
}
/// <summary>
/// 解析JSON数组生成对象实体集合
/// </summary>
/// <typeparam name="T">对象类型</typeparam>
/// <param name="json">json数组字符串(eg.[{"ID":"112","Name":"石子儿"}])</param>
/// <returns>对象实体集合</returns>
public static List<T> DeserializeJsonToList<T>(string json) where T : class
{
JsonSerializer serializer = new JsonSerializer();
StringReader sr = new StringReader(json);
object o = serializer.Deserialize(new JsonTextReader(sr), typeof(List<T>));
List<T> list = o as List<T>;
return list;
}
}
}
三、创建和解析Json数据
1.创建用于组建Jason数据的Person种子类
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace TestJson
{
class Person
{
public string name { get; set; }
public int age { get; set; }
}
}
2.创建和解析json数据
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace TestJson
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("=============创建json数据================");
Person bean = new Person();
bean.name = "张三";
bean.age = 10;
String result = ObjectToJsonHelper.SerializeObject(bean);
Console.WriteLine("json数据为:"+result);
Console.WriteLine("=============解析json数据================");
Person resultBean = ObjectToJsonHelper.DeserializeJsonToObject<Person>(result);
string resultName = resultBean.name;
int resultAge = resultBean.age;
Console.WriteLine("resultName = " + resultName + ",resultAge=" + resultAge);
Console.ReadKey();
}
}
}