繁体   English   中英

从 JSON 字符串中提取值

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM