首页 > 代码库 > [转]C# JSON格式的字符串读取到类中

[转]C# JSON格式的字符串读取到类中

将JSON格式的字符串读取到类中

本例中建立JSON格式的字符串json,将其内容读取到Person类中

运行本代码需要添加引用动态库Newtonsoft.Json

程序代码:

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;//需要引用 Newtonsoft.Json.dllusing 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

 

[转]C# JSON格式的字符串读取到类中