我以为我能理解Json。NET现在有点了但不幸的是,事实并非如此。有人能帮我一下吗?
我试图在控制台显示json文件中的数据
(错误:CS1061 |列表没有定义"title"| file: program .cs | line: 23)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Net;
using Newtonsoft.Json;
using Newtonsoft.Json.Serialization;
using Newtonsoft.Json.Converters;
using Newtonsoft.Json.Linq;
using System.IO;
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
var todos = CObject();
if (todos != null)
{
Console.WriteLine(todos.title);
Console.ReadKey();
}
}
static List<Todos> CObject()
{
string localfile =
@"C:gtodos.json";
if(File.Exists(localfile))
{
var todos =
JsonConvert.DeserializeObject<List<Todos>>
(File.ReadAllText(localfile));
return todos;
}
string urlfile = new WebClient().DownloadString(
"https://jsonplaceholder.typicode.com/todos");
if (File.Exists(urlfile))
{
var todos =
JsonConvert.DeserializeObject<List<Todos>>
(File.ReadAllText(urlfile));
return todos;
}
return null;
}
}
}
这是Todos.cs文件。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApp1
{
[Serializable]
public class Todos
{
public byte userId { get; set; }
public ushort id { get; set; }
public string title { get; set; }
public bool completed { get; set; }
}
}
json文件看起来像这样:
[
{
"userId": 1,
"id": 19,
"title": "molestiae ipsa aut voluptatibus pariatur dolor nihil",
"completed": true
},
{
"userId": 1,
"id": 20,
"title": "ullam nobis libero sapiente ad optio sint",
"completed": true
}
]
CObject
返回一个List(顺便说一下,将类命名为Todo
可能对以后的理解更好)。您可以遍历列表,其中的每个项都应该有一个title属性。但列表没有。
foreach(var item in todos) {
Console.WriteLine(item.title);
}