【发布时间】:2022-12-24 16:55:55
【问题描述】:
我想序列化一个刷新令牌并将其发送给客户端。
然后在返回时,我想反序列化并阅读它。
这是我的代码。
using System.Text.Json;
using System.Dynamic;
using System;
using System.Text.Encodings.Web;
using System.Text.Unicode;
using System.Text.Json.Nodes;
dynamic token = new ExpandoObject();
token.UserName = "John";
token.Expires = DateTime.Now.AddMinutes(5);
token.CreateDate = DateTime.Now;
var options = new JsonSerializerOptions
{
PropertyNameCaseInsensitive = true,
PropertyNamingPolicy = JsonNamingPolicy.CamelCase,
DictionaryKeyPolicy = JsonNamingPolicy.CamelCase,
Encoder = JavaScriptEncoder.Create(UnicodeRanges.All)
};
var refreshToken = JsonSerializer.Serialize(token, options);
Console.WriteLine(refreshToken);
var deserializedToken = JsonSerializer.Deserialize<JsonNode>(refreshToken, options);
var userName = "How can I extract username from JsonNode";
我尝试使用JsonNode["UserName"].Value,但它不起作用。
【问题讨论】:
-
在调试模式下,如果您查看 deserializedToken,它看起来像什么?您的动态对象被序列化程序视为字典。
标签: c# json system.text.json