如何解决从JSON字符串中提取值
我正在开发Blazor应用程序,并且有一个Json字符串,我正在尝试从中提取值。
Json Data看起来像这样:
{"a1":"a1234","e1":"e1234}
我正在尝试从中提取a1
的{{1}}值
我的JSON数据在字符串变量"a1234"
中。我正在尝试使用JsonSerializer.Deserialize,但是我不确定如何完全使用它...
rawJsonData
这是解决这个问题的正确方法吗?我不确定用什么代替???以上。任何人都有经验。
解决方法
创建一个类:
public class Root
{
public string a1 { get; set; }
public string e1 { get; set; }
}
然后Deserialize
进入该类:
var x = System.Text.JsonSerializer.Deserialize<Root>(rawJsonData);
或使用Newtonsoft.Json:
var x = Newtonsoft.Json.JsonConvert.DeserializeObject<Root>(rawJsonData);
要检索a1
的值,只需调用:x.a1
如果您使用Newtonsoft(如另一个答案中所述),则甚至不必创建类。
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();
当然,尝试转换一下会有所帮助。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。