![](/img/trans.png)
[英]Read from json file into IEnumerable using System.Text.Json
[英]How to read values from JsonNode in System.Text.Json
我想序列化一個刷新令牌並將其發送給客戶端。
然后返回時,我想反序列化並閱讀它。
這是我的代碼。
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
,但它不起作用。
由於您使用的是dynamic
所有后續變量也被解析為dynamic
。 只需聲明其中一種類型(例如序列化結果的string
)並使用 indexer + GetValue
:
string refreshToken = JsonSerializer.Serialize(token, options);
JsonNode? deserializedToken = JsonSerializer.Deserialize<JsonNode>(refreshToken, options);
var userName = deserializedToken["userName"].GetValue<string>();
你可以只使用解析
JsonNode deserializedToken = JsonNode.Parse(refreshToken);
string userName = (string) deserializedToken["userName"];
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.