use*_*519 38 c# json facebook json.net
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Facebook;
using Newtonsoft.Json;
namespace facebook
{
class Program
{
static void Main(string[] args)
{
var client = new FacebookClient(acc_ess);
dynamic result = client.Get("fql", new { q = "select target_id,target_type from connection where source_id = me()"});
string jsonstring = JsonConvert.SerializeObject(result);
//jsonstring {"data":[{"target_id":9503123,"target_type":"user"}]}
List<RootObject> datalist = JsonConvert.DeserializeObject<List<RootObject>>(jsonstring);
}
public class Datum
{
public Int64 target_id { get; set; }
public string target_type { get; set; }
}
public class RootObject
{
public List<Datum> data { get; set; }
}
}
}
Run Code Online (Sandbox Code Playgroud)
无法将当前JSON对象(例如{"name":"value"})反序列化为类型'System.Collections.Generic.List`1 [facebook.Program + RootObject]',因为该类型需要JSON数组(例如[1, 2,3])正确反序列化.要修复此错误,请将JSON更改为JSON数组(例如[1,2,3])或更改反序列化类型,使其成为普通的.NET类型(例如,不是像整数这样的基本类型,而不是类似的集合类型可以是数组或列表
我查看了其他帖子.
我的json看起来像这样:
{"data":[{"target_id":9503123,"target_type":"user"}]}
Run Code Online (Sandbox Code Playgroud)
har*_*r07 42
为了说清楚,除了@SLaks的答案,这意味着你需要改变这一行:
List<RootObject> datalist = JsonConvert.DeserializeObject<List<RootObject>>(jsonstring);
Run Code Online (Sandbox Code Playgroud)
这样的事情:
RootObject datalist = JsonConvert.DeserializeObject<RootObject>(jsonstring);
Run Code Online (Sandbox Code Playgroud)
您可以尝试在没有密钥的情况下更改您的 json 吗data
?如下所示?
[{"target_id":9503123,"target_type":"user"}]
Run Code Online (Sandbox Code Playgroud)
小智 5
这也发生在我身上,因为我试图获得一个IEnumerable
但响应只有一个值。请尽量确保它是您回复中的数据列表。我用来解决问题的行(用于 api url get)是这样的:
HttpResponseMessage response = await client.GetAsync("api/yourUrl");
if (response.IsSuccessStatusCode)
{
IEnumerable<RootObject> rootObjects =
awaitresponse.Content.ReadAsAsync<IEnumerable<RootObject>>();
foreach (var rootObject in rootObjects)
{
Console.WriteLine(
"{0}\t${1}\t{2}",
rootObject.Data1, rootObject.Data2, rootObject.Data3);
}
Console.ReadLine();
}
Run Code Online (Sandbox Code Playgroud)
希望能帮助到你。
归档时间: |
|
查看次数: |
93430 次 |
最近记录: |