using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json.Linq;
using System.Web.Script.Serialization;
using Newtonsoft.Json;
namespace jsonStudy
{
class Program
{
static void Main(string[] args)
{
Dictionary<string, object> hashMap = new Dictionary<string, object>();
hashMap.Add("Name", "测试名称");
hashMap.Add("Age", 23);
hashMap.Add("pen", new string[] { "钢笔", "圆珠笔" });
Console.WriteLine(DictionaryToJson(hashMap));
string jsonData = DictionaryToJson(hashMap);
Dictionary<string, object> jsonObj = JsonToDictionary(jsonData);
Console.WriteLine(jsonObj.Count);
Console.ReadKey();
List<Person> listPerson = new List<Person>() {
new Person() {Name="一号",Age=1,pen= new string[] { "钢笔1", "圆珠笔1" } },
new Person() {Name="二号",Age=2,pen= new string[] { "钢笔2", "圆珠笔2" } }
};
String jsonDataList = JsonConvert.SerializeObject(listPerson);
Console.ReadKey();
var persons = JsonConvert.DeserializeObject<List<Person>>(jsonDataList);
int count = 0;
foreach (Person item in persons)
{
count++;
Console.WriteLine("第"+count+"个的年龄"+item.Age);
}
}
#region 将Dictionary序列化为json数据
/// <summary>
/// 将Dictionary序列化为json数据
/// </summary>
/// <param name="dic"></param>
/// <returns></returns>
private static string DictionaryToJson(Dictionary<string, object> dic)
{
//实例化JavaScriptSerializer类的新实例
JavaScriptSerializer jss = new JavaScriptSerializer();
try
{
//将指定的 JSON 字符串转换为 Dictionary<string, object> 类型的对象
return jss.Serialize(dic);
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
}
#endregion
#region 将json数据反序列化为Dictionary
/// <summary>
/// 将json数据反序列化为Dictionary
/// </summary>
/// <param name="jsonData"></param>
/// <returns></returns>
private static Dictionary<string, object> JsonToDictionary(string jsonData)
{
//实例化JavaScriptSerializer类的新实例
JavaScriptSerializer jss = new JavaScriptSerializer();
try
{
//将指定的 JSON 字符串转换为 Dictionary<string, object> 类型的对象
return jss.Deserialize<Dictionary<string, object>>(jsonData);
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
}
#endregion
}
public class Person {
public string Name { get; set; }
public int Age { get; set; }
public string[] pen { get; set; }
}
}
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json.Linq;
using System.Web.Script.Serialization;
using Newtonsoft.Json;
namespace jsonStudy
{
class Program
{
static void Main(string[] args)
{
Dictionary<string, object> hashMap = new Dictionary<string, object>();
hashMap.Add("Name", "测试名称");
hashMap.Add("Age", 23);
hashMap.Add("pen", new string[] { "钢笔", "圆珠笔" });
Console.WriteLine(DictionaryToJson(hashMap));
string jsonData = DictionaryToJson(hashMap);
Dictionary<string, object> jsonObj = JsonToDictionary(jsonData);
Console.WriteLine(jsonObj.Count);
Console.ReadKey();
List<Person> listPerson = new List<Person>() {
new Person() {Name="一号",Age=1,pen= new string[] { "钢笔1", "圆珠笔1" } },
new Person() {Name="二号",Age=2,pen= new string[] { "钢笔2", "圆珠笔2" } }
};
String jsonDataList = JsonConvert.SerializeObject(listPerson);
Console.ReadKey();
var persons = JsonConvert.DeserializeObject<List<Person>>(jsonDataList);
int count = 0;
foreach (Person item in persons)
{
count++;
Console.WriteLine("第"+count+"个的年龄"+item.Age);
}
}
#region 将Dictionary序列化为json数据
/// <summary>
/// 将Dictionary序列化为json数据
/// </summary>
/// <param name="dic"></param>
/// <returns></returns>
private static string DictionaryToJson(Dictionary<string, object> dic)
{
//实例化JavaScriptSerializer类的新实例
JavaScriptSerializer jss = new JavaScriptSerializer();
try
{
//将指定的 JSON 字符串转换为 Dictionary<string, object> 类型的对象
return jss.Serialize(dic);
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
}
#endregion
#region 将json数据反序列化为Dictionary
/// <summary>
/// 将json数据反序列化为Dictionary
/// </summary>
/// <param name="jsonData"></param>
/// <returns></returns>
private static Dictionary<string, object> JsonToDictionary(string jsonData)
{
//实例化JavaScriptSerializer类的新实例
JavaScriptSerializer jss = new JavaScriptSerializer();
try
{
//将指定的 JSON 字符串转换为 Dictionary<string, object> 类型的对象
return jss.Deserialize<Dictionary<string, object>>(jsonData);
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
}
#endregion
}
public class Person {
public string Name { get; set; }
public int Age { get; set; }
public string[] pen { get; set; }
}
}