为了账号安全,请及时绑定邮箱和手机立即绑定

将字符串转换为对象数组

将字符串转换为对象数组

C#
斯蒂芬大帝 2021-05-06 17:14:03
如何将字符串转换为对象数组?我正在使用以下字符串var s = "[{role:staff, storeId: 1234}, {role:admin, storeId: 4321}]";我希望能够将其转换为.net对象,例如public class StaffAccountObj{    public string role { get; set; }    public string storeId { get; set; }}这可能吗?
查看完整描述

2 回答

?
慕沐林林

TA贡献2016条经验 获得超9个赞

一种解决方案是使用正则表达式查找匹配项。现在这有点脆弱,但是如果您确定您输入的格式是这种格式,那么它将起作用:


var s = "[{role:staff, storeId: 1234}, {role:admin, storeId: 4321}]";


//There is likely a far better RegEx than this...

var staffAccounts = Regex

    .Matches(s, @"\{role\:(\w*), storeId\: (\d*)}")

    .Cast<Match>()

    .Select(m => new StaffAccountObj

    {

        role = m.Groups[1].Value,

        storeId = m.Groups[2].Value

    });

并像这样遍历它们:


foreach (var staffAccount in staffAccounts)

{

    var role = staffAccount.role;

}


查看完整回答
反对 回复 2021-05-21
?
杨魅力

TA贡献1811条经验 获得超6个赞

您可以使用Newtonsoft.Json,因为您的字符串是JSON兼容的字符串:


using Newtonsoft.Json;


var myObject = JsonConvert.DeserializeObject<List<StaffAccountObj>>(s);


查看完整回答
反对 回复 2021-05-21
  • 2 回答
  • 0 关注
  • 296 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信