[英]extracting a value from a JSON string
我正在开发一个 Blazor 应用程序,我有一个 Json 字符串,我试图从中提取一个值。
Json 数据如下所示:
{"a1":"a1234","e1":"e1234}
我正在尝试从中提取a1
值,即"a1234"
我的 JSON 数据位于字符串变量rawJsonData
中。 我正在尝试使用 JsonSerializer.Deserialize,但我不确定如何完全使用它...
@code
{
string rawJsonData = JsonData (this is not the actual data, it's being pulled from elsewhere)
var x = System.Text.Json.JsonSerializer.Deserialize<???>(rawJsonData)
}
这是解决这个问题的正确方法吗? 我不知道用什么代替??? 以上。 任何人都有这方面的经验。
创建 class:
public class Root
{
public string a1 { get; set; }
public string e1 { get; set; }
}
然后将其Deserialize
化为 class:
var x = System.Text.JsonSerializer.Deserialize<Root>(rawJsonData);
或使用 Newtonsoft.Json:
var x = Newtonsoft.Json.JsonConvert.DeserializeObject<Root>(rawJsonData);
要检索a1
的值,只需调用: x.a1
如果您按照另一个答案中的建议使用 Newtonsoft,您甚至不必创建 class。
JObject temp = JObject.Parse(rawJsonData);
var a1 = temp["a1"];
如果您想坚持使用 System.Text.Json 并且不想为数据创建类/结构(为什么不呢?),如评论中所建议的,您可以
var jsonData = "{\"a1\":\"a1234\",\"e1\":\"e1234\"}";
var doc = JsonDocument.Parse(jsonData);
var a1 = doc?.RootElement.GetProperty("a1").GetString();
当然,围绕转换进行尝试会有所帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.