使用dynamic与DynamicJson处理动态组装对象

需求:有一个项目中,需要将一大串信息,组装成指定的Json字符串输出。

思考:如手动用for,foreach等循环自行拼接字符串,感觉好麻烦,而且可读性很差,也容易出错。

 

为了方便处理,想到了动态对象,并用Newtonsoft.Json.JsonConvert.SerializeObject()直接序列化为字符串,这样就避免了自己组装字符串的尴尬。

不想说太多了,直接上代码:

using Codeplex.Data;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;

namespace BadTree.Test
{
    public enum Gender
    {
        Boy = 1,
        Gril = 2,
    }
    public class DynamicTest
    {
        public static string Serialize()
        {
            List<dynamic> list = new List<dynamic>();
            dynamic item = new DynamicJson();
            item["Name"] = "Badtree";
            item["Age"] = 18;
            item["Gender"] = (int)Gender.Boy;

            list.Add(item);

            return JsonConvert.SerializeObject(list);
        }

        public static void Get(string jsonString)
        {
            JArray list = (JArray)JsonConvert.DeserializeObject(jsonString);
            JObject obj = (JObject)list[0];
            string name = obj.SelectToken("Name").ToString();
            int age = Convert.ToInt32(obj.SelectToken("Age"));
            Gender gender = obj.SelectToken("Gender").ToObject<Gender>();
        }
    }
}

DynamicJson 与 Newtonsoft.Json 需要在NuGet中自行获取;

如果需要返回的对象更复杂,可再自行组装。

 

转载于:https://www.cnblogs.com/badtree/articles/5956882.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值