C# 将JSON数组反序列化为列表

C# 将JSON数组反序列化为列表,c#,json,list,deserialization,C#,Json,List,Deserialization,我正试图从一个超大的JSON文件中获取推文。。。我只想要那些名为“文本”的 JSON文件如下所示: [{"text":"A nice cup of #coffee can speed your day up, and so can Firefox.", "text":"test1", "text":"test2"}] 编辑:它只抓取最后一个文本。。“文本2”。。为什么它不把所有的东西都列成一张清单 public class JSONClasses { public cl

我正试图从一个超大的JSON文件中获取推文。。。我只想要那些名为“文本”的

JSON文件如下所示:

[{"text":"A nice cup of #coffee can speed your day up, and so can Firefox.", "text":"test1",
"text":"test2"}]
编辑:它只抓取最后一个文本。。“文本2”。。为什么它不把所有的东西都列成一张清单

public class JSONClasses
    {
        public class SingleTweet
        {
            [JsonProperty("text")]
            public string text { get; set; }
        }
    }

    public class JSONFunctions
    {
        //public static JSONRoot jsonFile = new JSONRoot();
        public static List<JSONClasses.SingleTweet> TweetList = new List<JSONClasses.SingleTweet>();

        public static bool Deserialize(string path)
        {            
            try
            {
                var filePath = File.OpenText(path);
                TweetList = JsonConvert.DeserializeObject<List<JSONClasses.SingleTweet>>(filePath.ReadToEnd());
                filePath.Close();
                return true;
            }
            catch (Exception)
            {
                Console.WriteLine("Could not Deserialize: " + path);
                return false;
            }
        }
    }

//test to see if it works:
JSONFunctions.Deserialize(AppOptions.JSONTwitterFilePath);

foreach (JSONClasses.SingleTweet temp in JSONFunctions.TweetList)
                Console.WriteLine(temp);
公共类jsonclass
{
公共类单推
{
[JsonProperty(“文本”)]
公共字符串文本{get;set;}
}
}
公共类JSONFunctions
{
//public static JSONRoot jsonFile=new JSONRoot();
公共静态列表TweetList=新列表();
公共静态布尔反序列化(字符串路径)
{            
尝试
{
var filePath=File.OpenText(路径);
TweetList=JsonConvert.DeserializeObject(filePath.ReadToEnd());
filePath.Close();
返回true;
}
捕获(例外)
{
WriteLine(“无法反序列化:+path”);
返回false;
}
}
}
//测试以查看其是否有效:
反序列化(AppOptions.JSONTwitterFilePath);
foreach(JSONFunctions.TweetList中的jsonclass.SingleTweet temp)
控制台写入线(临时);

您的JSON是一个只有一个对象的数组,它有多个同名属性!这就是为什么你只能从最后一处房产中获得价值

它需要是这样的,才能成为一个对象数组,每个对象只有一个
文本
属性:

[
    {"text":"A nice cup of #coffee can speed your day up, and so can Firefox." },
    {"text":"test1" },
    {"text":"test2"}
]

请重新打开。。我修好了…你什么都没修好。如果有任何问题,您的更新将使您的问题无效。反序列化您最初发布的JSON效果很好。。。如果您希望我们能够帮助您,您需要发布您收到的完整异常消息。。。。。结果如何?我不知道你们想从我这里得到什么?它捕获到一个异常,因为“Newtonsoft.Json.JsonSerializationException类型的第一次意外异常发生在Newtonsoft.Json.dll中”编辑:好的,它不再出错,但它只捕获最后一个“文本”。。测试2。。由于某种原因,清单上似乎没有其他东西。。有人知道为什么吗?该死,我就知道这很简单。我会试着回来。