C#中主要用Newtonsoft.Json 库来操作Json数据。
例子如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
namespace exampleJson
{
public class Employees
{
public string firstName { get; set; }
public string lastName { get; set; }
}
public class Manager
{
public string salary { get; set; }
public string age { get; set; }
}
public class RootObject
{
public string companyID { get; set; }
public List<Employees> employees { get; set; }
public List<Manager> manager { get; set; }
}
public class Student
{
public string firstName { set; get; }
public string lastName { set; get; }
public string[] nikeName { set; get; }
}
class Program
{
static void Main(string[] args)
{
var student = new Student();
student.firstName = "Liu";
student.lastName = "Janet";
student.nikeName = new string[] { "A", "B" };
//类转换为json字符串
var json = JsonConvert.SerializeObject(student);
Console.WriteLine("-----类转换为json字符串-----");
Console.WriteLine(json);
//字符串转换为json对象
//var newstudent = JsonConvert.DeserializeObject(json);
string jsonText = "{\"shenzheng\":\"深圳\",\"beijing\":\"北京\",\"shanghai\":[{\"zj1\":\"zj11\",\"zj2\":\"zj22\"},\"zjs\"]}";
//转为json对象
JObject jo = (JObject)JsonConvert.DeserializeObject(jsonText);
string zone = jo["shenzheng"].ToString();//输出 深圳
string zone_en = jo["shanghai"].ToString();//"[\r\n {\r\n \"zj1\": \"zj11\",\r\n \"zj2\": \"zj22\"\r\n },\r\n \"zjs\"\r\n]"
string zj1 = jo["shanghai"][1].ToString();//"zjs"
Console.WriteLine("-----字符串转换为json对象-----");
Console.WriteLine("jo[shenzheng] : "+ zone);
Console.WriteLine("jo[shanghai] : " + zone_en);
Console.WriteLine("jo[shenzheng][1] : " + zj1);
//Console.WriteLine(jo);
//创建一个json对象
var jsonObj = new JObject();
jsonObj.Add("key", "value");
var jsonArr = new JArray();
jsonArr.Add("A");
jsonArr.Add("B");
jsonObj.Add("Arr", jsonArr);
Console.WriteLine("-----创建一个json对象-----");
Console.WriteLine(jsonObj.ToString());
//json格式字符串转换为C#对象
string jsonText1 = " {\"companyID\":\"15\",\"employees\":[{\"firstName\":\"Bill\",\"lastName\":\"Gates\"},{\"firstName\":\"George\",\"lastName\":\"Bush\"}],\"manager\":[{\"salary\":\"6000\",\"age\":\"23\"},{\"salary\":\"8000\",\"age\":\"26\"}]} ";
Console.WriteLine("-----json格式字符串转换为C#对象-----");
Console.WriteLine("原字符串: " + jsonText1);
RootObject rb = JsonConvert.DeserializeObject<RootObject>(jsonText1);
Console.WriteLine(rb.companyID);
Console.WriteLine(rb.employees[0].firstName);
foreach (Manager ep in rb.manager)
{
Console.WriteLine(ep.age);
}
Console.ReadKey();
}
}
}
输出: