将JSON格式的字符串读取到类中
本例中建立JSON格式的字符串json,将其内容读取到Person类中
运行本代码需要添加引用动态库Newtonsoft.Json
程序代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
//需要引用 Newtonsoft.Json.dll
using Newtonsoft.Json;
namespace JsonTest
{
class Program
{
/// <summary>
/// 人员类
/// </summary>
public class Person
{
public string name; //姓名
public int age; //年龄
public bool sex_is_male; //性别
public struct Partner //伙伴
{
public string partner_name; //伙伴姓名
public int partner_age; //伙伴年龄
public bool partner_sex_is_male; //伙伴性别
}
public Partner partner;
public string[] achievement; //成就
//构造函数
public Person()
{
name = "";
age = 0;
sex_is_male = true;
partner.partner_name = "";
partner.partner_age = 0;
partner.partner_sex_is_male = true;
achievement = null;
}
}
static void Main(string[] args)
{
string json = string.Concat(
"{",
" \"name\":\"Tsybius\",",
" \"age\":23,",
" \"sex_is_male\":true,",
" \"partner\":",
" {",
" \"partner_name\":\"Galatea\",",
" \"partner_age\":21,",
" \"partner_sex_is_male\":false",
" },",
" \"achievement\":[\"ach1\",\"ach2\",\"ach3\"]",
"}"
);
//将内容赋值到Person类
Person p = JsonConvert.DeserializeObject<Person>(json);
Console.WriteLine("name: " + p.name);
Console.WriteLine("age: " + p.age);
Console.WriteLine("sex_is_male: " + p.sex_is_male);
Console.WriteLine("partner_name: " + p.partner.partner_name);
Console.WriteLine("partner_age: " + p.partner.partner_age);
Console.WriteLine("partner_sex_is_male: " + p.partner.partner_sex_is_male);
Console.Write("achievement: ");
foreach (string achv in p.achievement)
{
Console.Write(achv + " ");
}
Console.WriteLine();
Console.ReadLine();
}
}
}
运行结果:
END