无法从Json Object获取数据

Ath*_*hul 3 c# asp.net json json.net

我从外部Webservice获取一些数据,并使用Newtonsoft.Json.Linq将其解析为json

像这样

 JObject o = JObject.Parse(json);
 JArray sizes = (JArray) o["data"];
Run Code Online (Sandbox Code Playgroud)

现在Sizes看起来像这样

{
    [
        {
            "post_id": "13334556777742_6456",
            "message": "messagecomes her",
            "attachment": {
                "media": [
                    {
                        "href": "http://onurl.html",
                        "alt": "",
                        "type": "link",
                        "src": "http://myurl.jpg"
                    }
                ],
                "name": "come to my name",
                "href": "http://mydeeplink.html",

                "description": "",
                "properties": [],
            },
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

我需要"src": "http://myurl.jpg"从这个Json数组中获取元素.我试过了:

foreach (JObject obj in sizes)
{
    JArray media = (JArray)obj["attachment"];
    foreach (JObject obj1 in media)
    {
        var src = obj1["src"];
    }
}
Run Code Online (Sandbox Code Playgroud)

但这是一个错误:

Unable to cast object of type 'Newtonsoft.Json.Linq.JObject' to type 'Newtonsoft.Json.Linq.JArray'.
Run Code Online (Sandbox Code Playgroud)

在这条线上

JArray media = (JArray)obj["attachment"];
Run Code Online (Sandbox Code Playgroud)

任何人都可以帮我解决这个问题吗?

Vla*_*mir 7

尝试修复线

JArray media = (JArray)(obj["attachment"]);
Run Code Online (Sandbox Code Playgroud)

JArray media = (JArray)(obj["attachment"]["media"]);
Run Code Online (Sandbox Code Playgroud)