Facebook C#sdk的动态对象处理问题
我正在使用Facebook C#sdk开发桌面应用程序。我获取动态对象,然后提取名称、id等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
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
- 基本类型:布尔型、字符串型、长型和双精度
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