【发布时间】:2019-03-02 00:04:58
【问题描述】:
我有这个 JSON 字符串,称为受理人:
{
"id": 15247055788906,
"gid": "15247055788906",
"name": "Bo Sundahl",
"resource_type": "user"
}
如果它不为空,我想获取“名称”元素及其值。我试过了
var jobject = JsonConvert.DeserializeObject<JObject>(assignee);
还有
var jo = JObject.Parse(assignee);
我尝试循环遍历它,但我只是得到空异常或空输出,即使我只是打印受让人变量本身,它填充了数据。
我的循环是这样的:
foreach (var result in jobject["name"])
{
Debug.WriteLine(result);
}
【问题讨论】:
-
将其解析为适当的 C# 类而不是
JObject,这样所有这些复杂性都会消失。 -
这么小的数据真的没必要,string name = jobject["name"];够了
-
虽然有很多好处。编译时类型检查是显而易见的。然而,有一些不太明显的,例如代码的可读性。
-
@fasola 这不是关于方法的冗长,而是关于处理它的正确方法。这就是为什么我删除了我的答案并赞成大卫的
-
还有一点需要注意的是,反序列化到具体类的速度几乎是使用
JObject的两倍。