【问题标题】:Deserialize dynamic object in c#在c#中反序列化动态对象
【发布时间】:2016-11-30 16:52:21
【问题描述】:

我正在尝试通过 Graph API 获取 Facebook 个人资料数据。我在 MVC 应用程序中使用 Facebook SDK。使用以下代码返回动态结果。

dynamic myInfo = await fb.GetTaskAsync("v2.8/me?fields=first_name,last_name,link,locale,email,name,birthday,gender,location,age_range");
      var facebookProfile = new FacebookProfileViewModel()
                {
                    FirstName = myInfo.first_name,
                    LastName = myInfo.last_name,
                    LinkUrl = myInfo.link,
                    Locale = myInfo.locale };

我正在像这样从 facebook 获取数据 -

[{"Key":"first_name","Value":"John"},{"Key":"last_name","Value":"Doe"},{"Key":"link","Value":"https://www.facebook.com/app_scoped_user_id/4327693/"}]

我收到以下错误 -

Microsoft.CSharp.RuntimeBinder.RuntimeBinderException: Cannot implicitly convert type 'Facebook.JsonObject' to 'string'

【问题讨论】:

    标签: c# asp.net-mvc facebook-graph-api


    【解决方案1】:

    安装newtonsoft:

    Install-Package Newtonsoft.Json

    从 json 转换:

    string json = 
    "[
        {
            "Key": "first_name",
            "Value": "John"
        },
        {
            "Key": "last_name",
            "Value": "Doe"
        },
        {
            "Key": "link",
            "Value": "https://www.facebook.com/app_scoped_user_id/4327693/"
        }
    ]";
    FbProfile Profile = JsonConvert.DeserializeObject<FbProfile>(json);
    

    【讨论】:

    • 谢谢莫希特。它不起作用,我尝试与我的 ViewModel 绑定。
    • 不起作用,因为预期的 json 结果 {"first_name":"John","last_name":"Doe","link":"facebook.com/app_scoped_user_id/4327693"}
    • @snnbrn 这也是一个有效的 json。让我格式化它以显示它的样子
    猜你喜欢
    • 1970-01-01
    • 2011-03-09
    • 1970-01-01
    • 1970-01-01
    • 2023-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多