反序列化对象作为字符串的JSON字符串

山姆

我需要序列化一串 JSON。但在这个字符串中,它包含我想序列化为字符串的对象。

看看这个 JSON 字符串

{
    "action":"applyPromo",
    "params":
    [
        {
            "transacId":"M123238831",
            "promotionId":16,
            "promotionTypeId":1,
            "amount":100,
            "transacTime":"2021-03-19T12:00:30.045+10:00"
        }
    ]
}

由于动作可以是任何东西,我需要将参数存储为一个字符串,该字符串将在其他地方反序列化。

这是我的课:

public class RequestAction
{
    public string action { get; set; }
    public string params { get; set; }

    public RequestAction()
    {
        action = params = string.Empty;
    }
}

当我尝试使用 JSON (Newtonsoft) 反序列化字符串时,出现以下错误:Unexpected character encountered while parsing value: [. Path 'params', line 1, position 27.'.

这是我反序列化 JSON 字符串的代码

public static RequestAction Parse(str)
{
    return JsonConvert.DeserializeObject<RequestAction>(str);
}

知道如何反序列params化为字符串吗?

马里亚诺路易斯别墅

如果我理解正确,您需要该params属性作为原始字符串。实现此目的的一种方法是使用JToken

public class RequestAction
{
    public string Action { get; set; } = string.Empty;
    public JToken Params { get; set; }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章