尝试在Facebook上执行页面搜索
if (sq.ObjectType.Equals("page"))
{
searchPath = "/search";
req.q = sq.Query;
req.type = sq.ObjectType;
}
dynamic results = FBClient_.Get(req);我不知道如何解析结果。我不能简单地遍历它们。
我也看不到它的结构,因为它是动态对象,它有这样的结构:
{
"data": [
{
"name": "Platform-3",
"category": "Health/medical/pharmacy",
"id": "362034114769"
},
{
"name": "Platform Expos",
"category": "Product/service",
"id": "521000451259682"
},
{
"name": "eXo Platform",
"category": "Software",
"id": "152603664817327"
},
{
"name": "Platform 28",
"category": "Bar",
"id": "104411956289378"
},
}但我不确定如何得到它。如何将其转换为可读格式?
发布于 2012-11-30 11:34:58
下面是一些映射。
objects => IDictionary<string, object> or IDictionary<string, dynamic>
arrays => IList<object> or IList<dynamic>
number => long if whole number, double if have decimal values
string => string
boolean => bool因此在您的情况下,您可以这样做。
dynamic result = fb.Get("...")
foreach(var data in result.data) {
var name = data.name;
var category = data.category;
var id = data.id
}因为result.data是动态的,实际上是IList<object>,所以你可以在它上面使用foreach。你也可以试试这个。
dynamic result = fb.Get("...")
IList<dynamic> data = result.data;
foreach(var d in data) {
string name = d.name;
string category = d.category;
string id = d.id
}或者是你的强类型。
public class SearchResults {
public IList<SearchResult> data { get; set;}
}
public class SearchResult {
public string id { get; set; }
public string name { get; set; }
public string category { get; set; }
}
var result = fb.Get<SearchResults>(...)如果您想遵循C#命名标准,请使用DataContract和DataMember。
[DataContract]
public class SearchResults {
[DataMember(Name = "data")]
public IList<SearchResult> Data { get; set;}
}
[DataContract]
public class SearchResult {
[DataMember(Name = "id")]
public string Id { get; set; }
[DataMember(Name = "Name")]
public string Name { get; set; }
[DataMember(Name = "Category")]
public string Category { get; set; }
}发布于 2012-11-30 11:39:19
您要么必须创建强类型的类来表示您的JSON数据,就像prabir发布的那样,要么您可以使用Json.NET这样的JSON库,它将允许您更容易地与您的数据交互。下面是他们页面上的一个例子:
string json = @"{
""Name"": ""Apple"",
""Expiry"": new Date(1230422400000),
""Price"": 3.99,
""Sizes"": [
""Small"",
""Medium"",
""Large""
]
}";
JObject o = JObject.Parse(json);
string name = (string)o["Name"];
// Apple
JArray sizes = (JArray)o["Sizes"];
string smallest = (string)sizes[0];https://stackoverflow.com/questions/13622547
复制相似问题