解析JSON参数

{
    'jsonArray': [
        {
            'LevelId': '5E78C326345941B1BF7745A3792A9ABC',
            'MinAge': '10',
            'MaxAge': '15',
            'ClassHour': '45',
            'LevelName': ' 萌级'
        },
        {
            'LevelId': '3CAA2E0A188845688E384CF8104B8073',
            'MinAge': '20',
            'MaxAge': '25',
            'ClassHour': '60',
            'LevelName': '初级'
        },
        {
            'LevelId': '182809E741694EB18B1AF6CF6AEF0868',
            'MinAge': '30',
            'MaxAge': '35',
            'ClassHour': '90',
            'LevelName': ' 中级'
        }
    ]
}

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Xml.Linq;

namespace WebAPP.Controllers
{
    public class IndexController : Controller
    {
        /// <summary>
        /// http://localhost:2290/Index/JsonTest1
        /// </summary>
        [HttpGet]
        public JsonResult JsonTest1()
        {
            #region jsonString            
            string jsonString = @"
{
    'jsonArray': [
        {
            'LevelId': '5E78C326345941B1BF7745A3792A9ABC',
            'MinAge': '10',
            'MaxAge': '15',
            'ClassHour': '45',
            'LevelName': ' 萌级'
        },
        {
            'LevelId': '3CAA2E0A188845688E384CF8104B8073',
            'MinAge': '20',
            'MaxAge': '25',
            'ClassHour': '60',
            'LevelName': '初级'
        },
        {
            'LevelId': '182809E741694EB18B1AF6CF6AEF0868',
            'MinAge': '30',
            'MaxAge': '35',
            'ClassHour': '90',
            'LevelName': ' 中级'
        }
    ]
}
";
            #endregion

            //解析Json字符串
            var jss = new System.Web.Script.Serialization.JavaScriptSerializer();
            object obj = jss.DeserializeObject(jsonString);
            var dictObject = obj as Dictionary<string, object>;
            var array = dictObject["jsonArray"] as object[];

            List<object> list = new List<object>();
            for (int i = 0; i < array.Length; i++)
            {
                var dict = array[i] as Dictionary<string, object>;

                string LevelId = dict["LevelId"].ToString();
                int MinAge = dict["MinAge"].ObjectToInt();
                int MaxAge = dict["MaxAge"].ObjectToInt();
                int ClassHour = dict["ClassHour"].ObjectToInt();
                string LevelName = dict["LevelName"].ToString();

                object data = new { LevelId, MinAge, MaxAge, ClassHour, LevelName };
                list.Add(data);
            }

            return ReturnJsonResult(new { list });
        }

     
/// <summary> /// 内容类型(Json) /// </summary> private static String ContentType = "application/json; charset=utf-8"; /// <summary> /// 返回 JsonResult /// </summary> /// <param name="data">要序列化的对象数据</param> public JsonResult ReturnJsonResult(object data) { return Json(data, ContentType, JsonRequestBehavior.AllowGet); } /// <summary> /// 返回 JsonResult /// </summary> /// <param name="data">要序列化的对象数据</param> /// <param name="behavior">指定是否允许来自客户端的 HTTP GET 请求</param> public JsonResult ReturnJsonResult(object data, JsonRequestBehavior behavior) { return Json(data, ContentType, behavior); } } }

 

打印信息

{"list":[
    {"LevelId":"5E78C326345941B1BF7745A3792A9ABC","MinAge":10,"MaxAge":15,"ClassHour":45,"LevelName":"萌级"},
    {"LevelId":"3CAA2E0A188845688E384CF8104B8073","MinAge":20,"MaxAge":25,"ClassHour":60,"LevelName":"初级"},
    {"LevelId":"182809E741694EB18B1AF6CF6AEF0868","MinAge":30,"MaxAge":35,"ClassHour":90,"LevelName":"中级"}
]}             


obj
Count = 1
    [0]: {[jsonArray, System.Object[]]}
dictObject["jsonArray"] {object[3]} [0]: Count = 5 [1]: Count = 5 [2]: Count = 5
array {object[3]} [0]: Count = 5 [1]: Count = 5 [2]: Count = 5
array[i] Count = 5 [0]: {[LevelId, 5E78C326345941B1BF7745A3792A9ABC]} [1]: {[MinAge, 10]} [2]: {[MaxAge, 15]} [3]: {[ClassHour, 45]} [4]: {[LevelName, 萌级]} dict Count = 5 [0]: {[LevelId, 5E78C326345941B1BF7745A3792A9ABC]} [1]: {[MinAge, 10]} [2]: {[MaxAge, 15]} [3]: {[ClassHour, 45]} [4]: {[LevelName, 萌级]} data { LevelId = "5E78C326345941B1BF7745A3792A9ABC", MinAge = 10, MaxAge = 15, ClassHour = 45, LevelName = "萌级" } ClassHour: 45 LevelId: "5E78C326345941B1BF7745A3792A9ABC" LevelName: "萌级" MaxAge: 15 MinAge: 10
data.GetType().Name "<>f__AnonymousType11`5"

 

 

{
    'status': true,
    'jsonArray': [
        {
            'CourseId': '77EE4FAC789541A2B704B647336D5CBD',
            'CategoryId': 1,
            'CourseCodeSet': 'Course002',
            'CourseNameCn': '微米',
            'CourseNameEn': 'WeiMi',
            'ApplyClassNameCn': '微米班',
            'ApplyClassNameEn': 'MiLuo Class',
            'EnableState': 1,
            'LevelArray': [
                {
                    'CourseLevelId': '3CAA2E0A188845688E384CF8104B8073',
                    'LevelNameCn': '初级',
                    'LevelNameEn': 'Primary',
                    'MinAge': 2,
                    'MaxAge': 5,
                    'ClassHour': 90
                },
                {
                    'CourseLevelId': '182809E741694EB18B1AF6CF6AEF0868',
                    'LevelNameCn': '中级',
                    'LevelNameEn': 'Intermediate',
                    'MinAge': 2,
                    'MaxAge': 5,
                    'ClassHour': 90
                },
                {
                    'CourseLevelId': '924C12A2B9734535950EFAC1CB8056D7',
                    'LevelNameCn': '高级',
                    'LevelNameEn': 'Senior',
                    'MinAge': 2,
                    'MaxAge': 5,
                    'ClassHour': 90
                }
            ]
        }
    ]
}

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Xml.Linq;

namespace WebAPP.Controllers
{
    public class IndexController : Controller
    {
        /// <summary>
        /// http://localhost:2290/Index/JsonTest2
        /// </summary>
        [HttpGet]
        public JsonResult JsonTest2()
        {
            #region jsonString            
            string jsonString = @"
{
    'status': true,
    'jsonArray': [
        {
            'CourseId': '77EE4FAC789541A2B704B647336D5CBD',
            'CategoryId': 1,
            'CourseCodeSet': 'Course002',
            'CourseNameCn': '微米',
            'CourseNameEn': 'WeiMi',
            'ApplyClassNameCn': '微米班',
            'ApplyClassNameEn': 'MiLuo Class',
            'EnableState': 1,
            'LevelArray': [
                {
                    'CourseLevelId': '3CAA2E0A188845688E384CF8104B8073',
                    'LevelNameCn': '初级',
                    'LevelNameEn': 'Primary',
                    'MinAge': 2,
                    'MaxAge': 5,
                    'ClassHour': 90
                },
                {
                    'CourseLevelId': '182809E741694EB18B1AF6CF6AEF0868',
                    'LevelNameCn': '中级',
                    'LevelNameEn': 'Intermediate',
                    'MinAge': 2,
                    'MaxAge': 5,
                    'ClassHour': 90
                },
                {
                    'CourseLevelId': '924C12A2B9734535950EFAC1CB8056D7',
                    'LevelNameCn': '高级',
                    'LevelNameEn': 'Senior',
                    'MinAge': 2,
                    'MaxAge': 5,
                    'ClassHour': 90
                }
            ]
        }
    ]
}
";
            #endregion

            //解析Json字符串
            var jss = new System.Web.Script.Serialization.JavaScriptSerializer();
            object obj = jss.DeserializeObject(jsonString);
            var dictObject = obj as Dictionary<string, object>;

            var status = dictObject["status"];
            var array = dictObject["jsonArray"] as object[];

            List<object> list = new List<object>();
            for (int i = 0; i < array.Length; i++)
            {
                var dict = array[i] as Dictionary<string, object>;

                string CourseId = dict["CourseId"].ToString();
                int CategoryId = dict["CategoryId"].ObjectToInt();
                string CourseCodeSet = dict["CourseCodeSet"].ToString();
                string CourseNameCn = dict["CourseNameCn"].ToString();
                string CourseNameEn = dict["CourseNameEn"].ToString();
                string ApplyClassNameCn = dict["ApplyClassNameCn"].ToString();
                string ApplyClassNameEn = dict["ApplyClassNameEn"].ToString();
                int EnableState = dict["EnableState"].ObjectToInt();

                var LevelArray = dict["LevelArray"];
                object[] objLevelArray = dict["LevelArray"] as object[];
                List<object> levelList = new List<object>();
                for (int j = 0; j < objLevelArray.Length; j++)
                {
                    var levelDict = objLevelArray[j] as Dictionary<string, object>;

                    string CourseLevelId = levelDict["CourseLevelId"].ToString();
                    string LevelNameCn = levelDict["LevelNameCn"].ToString();
                    string LevelNameEn = levelDict["LevelNameEn"].ToString();
                    int MinAge = levelDict["MinAge"].ObjectToInt();
                    int MaxAge = levelDict["MaxAge"].ObjectToInt();
                    int ClassHour = levelDict["ClassHour"].ObjectToInt();

                    object dataLevel = new { CourseLevelId, LevelNameCn, LevelNameEn, MinAge, MaxAge, ClassHour };
                    levelList.Add(dataLevel);
                }

                object data = new { CourseId, CategoryId, CourseCodeSet, CourseNameCn, CourseNameEn, ApplyClassNameCn, ApplyClassNameEn, EnableState, levelList, LevelArray };
                list.Add(data);
            }

            return ReturnJsonResult(new { list });
        }


/// <summary> /// 内容类型(Json) /// </summary> private static String ContentType = "application/json; charset=utf-8"; /// <summary> /// 返回 JsonResult /// </summary> /// <param name="data">要序列化的对象数据</param> public JsonResult ReturnJsonResult(object data) { return Json(data, ContentType, JsonRequestBehavior.AllowGet); } /// <summary> /// 返回 JsonResult /// </summary> /// <param name="data">要序列化的对象数据</param> /// <param name="behavior">指定是否允许来自客户端的 HTTP GET 请求</param> public JsonResult ReturnJsonResult(object data, JsonRequestBehavior behavior) { return Json(data, ContentType, behavior); } } }

 

打印信息

obj
Count = 2
    [0]: {[status, True]}
    [1]: {[jsonArray, System.Object[]]}

status
true

dictObject["jsonArray"]
{object[1]}
    [0]: Count = 9

array
{object[1]}
    [0]: Count = 9


array[i]
Count = 9
    [0]: {[CourseId, 77EE4FAC789541A2B704B647336D5CBD]}
    [1]: {[CategoryId, 1]}
    [2]: {[CourseCodeSet, Course002]}
    [3]: {[CourseNameCn, 微米]}
    [4]: {[CourseNameEn, WeiMi]}
    [5]: {[ApplyClassNameCn, 微米班]}
    [6]: {[ApplyClassNameEn, MiLuo Class]}
    [7]: {[EnableState, 1]}
    [8]: {[LevelArray, System.Object[]]}

dict["LevelArray"]
{object[3]}
    [0]: Count = 6
    [1]: Count = 6
    [2]: Count = 6

objLevelArray[j] 
Count = 6
    [0]: {[CourseLevelId, 3CAA2E0A188845688E384CF8104B8073]}
    [1]: {[LevelNameCn, 初级]}
    [2]: {[LevelNameEn, Primary]}
    [3]: {[MinAge, 2]}
    [4]: {[MaxAge, 5]}
    [5]: {[ClassHour, 90]}

dataLevel
{ CourseLevelId = "3CAA2E0A188845688E384CF8104B8073", LevelNameCn = "初级", LevelNameEn = "Primary", MinAge = 2, MaxAge = 5, ClassHour = 90 }
    ClassHour: 90
    CourseLevelId: "3CAA2E0A188845688E384CF8104B8073"
    LevelNameCn: "初级"
    LevelNameEn: "Primary"
    MaxAge: 5
    MinAge: 2

levelList
Count = 3
    [0]: { CourseLevelId = "3CAA2E0A188845688E384CF8104B8073", LevelNameCn = "初级", LevelNameEn = "Primary", MinAge = 2, MaxAge = 5, ClassHour = 90 }
    [1]: { CourseLevelId = "182809E741694EB18B1AF6CF6AEF0868", LevelNameCn = "中级", LevelNameEn = "Intermediate", MinAge = 2, MaxAge = 5, ClassHour = 90 }
    [2]: { CourseLevelId = "924C12A2B9734535950EFAC1CB8056D7", LevelNameCn = "高级", LevelNameEn = "Senior", MinAge = 2, MaxAge = 5, ClassHour = 90 }

data
{ CourseId = "77EE4FAC789541A2B704B647336D5CBD", CategoryId = 1, CourseCodeSet = "Course002", CourseNameCn = "微米", CourseNameEn = "WeiMi", ApplyClassNameCn = "微米班", ApplyClassNameEn = "MiLuo Class", EnableState = 1, levelList = {System.Collections.Generic.List<object>}, LevelArray = {object[3]} }
    ApplyClassNameCn: "微米班"
    ApplyClassNameEn: "MiLuo Class"
    CategoryId: 1
    CourseCodeSet: "Course002"
    CourseId: "77EE4FAC789541A2B704B647336D5CBD"
    CourseNameCn: "微米"
    CourseNameEn: "WeiMi"
    EnableState: 1
    LevelArray: {object[3]}
    levelList: Count = 3

  

posted @ 2017-12-07 01:05  茗::流  阅读(532)  评论(0)    收藏  举报
如有雷同,纯属参考。如有侵犯你的版权,请联系我。