Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Facebook C#sdk的动态对象处理问题_C#_Facebook C# Sdk - Fatal编程技术网

Facebook C#sdk的动态对象处理问题

Facebook C#sdk的动态对象处理问题,c#,facebook-c#-sdk,C#,Facebook C# Sdk,我正在使用Facebook C#sdk开发桌面应用程序。我获取动态对象,然后提取名称、id等 dynamic result = fb.Get("/me"); string name=result.name; 现在的问题是我无法提取工作信息或喜爱的团队等。我使用了所需的权限,但无法处理动态对象。它的格式如下: "languages": [ { "id": "106502622718539", "name": "Bānglā" }, { "id": "106059522759137

我正在使用Facebook C#sdk开发桌面应用程序。我获取动态对象,然后提取名称、id等

dynamic result = fb.Get("/me");
string name=result.name;
现在的问题是我无法提取工作信息或喜爱的团队等。我使用了所需的权限,但无法处理动态对象。它的格式如下:

"languages": [
{
  "id": "106502622718539", 
  "name": "Bānglā"
}, 
{
  "id": "106059522759137", 
  "name": "English"
}
],


为了得到它们,我做了很多努力。什么也没找到。我听说它是以数组的形式出现的。请通过C代码帮助提取这些信息………

看起来您可能需要:

dynamic result = fb.Get("/me");
foreach (dynamic language in result.languages)
{
    Console.WriteLine("{0}: {1}", language.name, language.id);
}

不过,我不能说我自己也使用过Facebook SDK。

这里有一条关于如何使用Facebook C#SDK/SimleJson中的json数据的黄金法则(Facebook C#SDK内部使用SimpleJson进行json序列化/反序列化)

有3种可能的类型:数组、Json对象和私有类型

  • 数组:可以强制转换为IList或IList
  • JsonObject:键值对-IDictionary
  • 基本类型:布尔型、字符串型、长型和双精度
由于langauges是一个数组,您可以将其用作IList,并在类似Json Skeet提到的for循环中使用它。您还可以受益于IList的其他功能,如索引器和数组的不同属性

dynamic result = fb.Get("/me");
var langauges = result.languages;
var length = languages.Length;
var lang1 = languages[0];
var lang1Id = lang1["id"];
var lang1Name = lang1["name"];
var lang2 = langauges[1];
var lang2Id = lang2.id;
var lang2Name = lang2.name;
由于lang1和lang2是一个JsonObject,您可以像在IDictionary中一样使用像lang1[“id”]这样的索引器,也可以更轻松地使用lang1.id