1.引用DLL文件
在项目中引用Newtonsoft.Json.dll
2.解析简单json数据
//生成json类型数据
JObject obj = new JObject();
obj.Add("key1", "value1");
obj.Add("key2", "value2");
obj.Add("key3", 3);
obj.Add("key4",true);
String response = obj.ToString();
Console.WriteLine(response);
Console.WriteLine("=================================");
//解析数值
JObject joResponse = (JObject)JsonConvert.DeserializeObject(response);
Console.WriteLine(joResponse["key1"].ToString());
Console.WriteLine(joResponse["key2"].ToString());
bool bo = joResponse.Value<bool>("key4");
Console.WriteLine(bo);
int inn = joResponse.Value<int>("key3");
Console.WriteLine(inn);
3.解析json数组
//生成数组
JArray jarray = new JArray();
JObject jobj = new JObject();
jobj.Add("name", "张三");
jobj.Add("age", 18);
jobj.Add("sex", "男");
JObject jobj2 = new JObject();
jobj2.Add("name", "李四");
jobj2.Add("age", 18);
jobj2.Add("sex", "女");
jarray.Add(jobj);
jarray.Add(jobj2);
String response = jarray.ToString();
Console.WriteLine(response);
Console.WriteLine("============================================");
//解析数组
JArray ja = (JArray)JsonConvert.DeserializeObject(response);
//获取数值
foreach (JObject jo in ja)
{
string name = jo["name"].ToString();
string age = jo["age"].ToString();
string sex = jo["sex"].ToString();
Console.WriteLine("name="+name + ", age=" + age+", sex=" + sex);
}
//单个数值获取
JObject joo = (JObject)ja[1];
string name2 = joo["name"].ToString();
Console.WriteLine("name2="+name2);
string age2 = joo["age"].ToString();
Console.WriteLine("age2=" + age2);
string sex2 = joo["sex"].ToString();
Console.WriteLine("sex2=" + sex2);
4.将对象转换成json
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":"123","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":"123","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;
}
}