反序列化从 twitter api 1.1 c# 返回的推文

Deserialize tweets returned from twitter api 1.1 c#

当我传入一个特定的屏幕名称时,返回给我的是以下内容。

我一直在关注这个Deserialize JSON into C# dynamic

我正在尝试通过执行以下操作来引用文本字段:

       var serializer = new JavaScriptSerializer();

       dynamic data = serializer.Deserialize(tweets, typeof(object));

       for (int i = 0; i < data.Count; i++)
       {
           var t = data[i][3].text;    
       }

显然是错误的,因为我得到

Additional information: Operator '<' cannot be applied to operands of type 'int' and 'object[]'

谁能帮我检索推文的文本。

如您所见,文本是您正在接收的 json 的根元素的属性。

我建议您使用 Json.net 库来解析 json 字符串并将其映射到您可以在代码中使用的对象。 您可以在这里下载:https://www.nuget.org/packages/newtonsoft.json/

为了从 json 字符串中获取文本,您必须执行以下操作:

  1. 在 c# 中创建一个具有所需属性的 class。这是class,根节点的属性将被映射到。这样做,你必须在你的程序中实现你想要处理的属性(例如 "text")。

    class Tweet{
    public string created_at { get; set; }
    public long id { get; set; }
    public string id_str { get; set; }
    public string text { get; set; }
    public string source { get; set; }
    }
    
  2. 现在您可以使用该库解析 Tweet 对象,然后获取文本属性。

    var tweet = JsonConvert.DeserializeObject<Tweet>(jsonString);
    var text = Tweet.text;