如何仅从 JSON 中获取某些字段?

mar*_*zzz 0 .net c# webforms

我从外部来源获得了一个包含大量字段的 json。我不在乎他们中的大多数,我只需要其中的“一些”。(它们处于不同的子级)。

所以我猜我不需要有一个“强类型”的对象。尝试过:

JavaScriptSerializer js = new JavaScriptSerializer();
var obj = jss.Deserialize(myJson);
Run Code Online (Sandbox Code Playgroud)

但似乎我做不到?我该怎么做?

使用:

jss.Deserialize<dynamic>(objectText);
Run Code Online (Sandbox Code Playgroud)

比我不能使用 LINQ 搜索字段...

Dav*_*yon 6

使用JSON.Net,您可以反序列化为您定义的对象。您定义的对象只能是部分匹配。然后DeserializeObject<>将忽略所有其他 JSON 字段。

例如 JSON:

{
    Cat: "Tom",
    Mouse: "Jerry",
    Duck: "Donald"
}
Run Code Online (Sandbox Code Playgroud)

使用这个:

public class LooneyTunes
{
    public string Cat { get; set; }
    public string Mouse { get; set; }
}

var looneyTunes = JsonConvert.DeserializeObject<LooneyTunes>(json);
Run Code Online (Sandbox Code Playgroud)

这将忽略该Duck属性并正确反序列化其余部分。因此,使用这种技术,您可以选择您感兴趣的 JSON 消息的哪一部分。