ホームページ >バックエンド開発 >C++ >c#でFacebookグラフAPI JSONを降らせたときに、「プリミティブオブジェクトが無効」エラーを解決する方法は?

c#でFacebookグラフAPI JSONを降らせたときに、「プリミティブオブジェクトが無効」エラーを解決する方法は?

Barbara Streisand
Barbara Streisandオリジナル
2025-02-02 07:01:08632ブラウズ

How to Resolve

トラブルシューティングC#JSON降脱指定エラー

Facebook Graph API(Friends List)からのJSON応答をゆるくしながら、「プリミティブオブジェクトに遭遇すると「プリミティブオブジェクトが無効」エラーが発生しますか?このガイドはソリューションを提供します

1。 C#クラスの構造:

JSONデータを正しくマッピングするには、一致するC#クラスを定義します。 構造は、JSONのネストされたオブジェクトと配列をミラーリングする必要があります。

2。
<code class="language-csharp">public class FacebookFriendsResponse
{
    public List<FacebookFriend> data { get; set; }
}

public class FacebookFriend
{
    public string id { get; set; }
    public string name { get; set; }
}</code>

による脱気質化 JavaScriptSerializer

)を使用して、JSON文字列を定義されたクラス構造に脱色します。

JavaScriptSerializerSystem.Web.Script.Serialization3。コードの例と出力:

<code class="language-csharp">FacebookFriendsResponse facebookFriends;

// ... obtain 'result' string from Facebook API call ...

using (var js = new System.Web.Script.Serialization.JavaScriptSerializer())
{
    facebookFriends = js.Deserialize<FacebookFriendsResponse>(result);
}</code>

プロセスを示す完全な例:

output:

<code class="language-csharp">string json = @"{""data"":[{""id"":""518523721"",""name"":""ftyft""}, {""id"":""527032438"",""name"":""ftyftyf""}, {""id"":""527572047"",""name"":""ftgft""}, {""id"":""531141884"",""name"":""ftftft""}]}";

using (var js = new System.Web.Script.Serialization.JavaScriptSerializer())
{
    FacebookFriendsResponse facebookFriends = js.Deserialize<FacebookFriendsResponse>(json);

    foreach (var friend in facebookFriends.data)
    {
        Console.WriteLine($"id: {friend.id}, name: {friend.name}");
    }
}</code>

この改訂されたアプローチにより、JSONデータの正確なマッピングが保証され、「プリミティブオブジェクトが無効」エラーを防ぎます。 脱出プロセス中に潜在的な例外を処理することを忘れないでください。 新しい.NETプロジェクトについては、より堅牢なJSONハンドリングにを使用することを検討してください。

以上がc#でFacebookグラフAPI JSONを降らせたときに、「プリミティブオブジェクトが無効」エラーを解決する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。