动态对象处理问题Facebook c# sdk
本文关键字:sdk Facebook 处理问题 对象 动态 | 更新日期: 2023-09-27 18:08:02
我正在使用Facebook c# sdk用于桌面应用程序。我正在获取动态对象,然后提取名称,id等
dynamic result = fb.Get("/me");
string name=result.name;
现在的问题是我不能提取工作信息或最喜欢的团队等。我已经使用了所需的权限,但无法处理动态对象。格式如下:
"languages": [
{
"id": "106502622718539",
"name": "Bānglā"
},
{
"id": "106059522759137",
"name": "English"
}
,
http://developers.facebook.com/tools/explorer/试了很多遍才得到它们。什么也没找到。我读到过它是以数组的形式出现的。请帮助通过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序列化/反序列化http://simplejson.codeplex.com/)。
有3种可能的类型:数组,Json对象和基本类型。
- Array:可以转换为IList
- JsonObject:键值对- dictionary<string,>
- 基本类型:bool、string、long和double。
由于languages是一个数组,您可以将其用作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,你可以使用像lang1["id"]这样的索引器,就像你在字典<string,object>中做的那样,或者更容易使用lang1.id。