我试图使用StreamReader以下方法读取本地.json文件:
我的代码:
using (var jsonReader = new StreamReader(pathToMyJsonFile))
{
string json = jsonReader.ReadToEnd();
dynamic array = JsonConvert.DeserializeObject(json);
foreach (var item in array)
{
Console.WriteLine(item.fuzzy);
}
}
Run Code Online (Sandbox Code Playgroud)
我的json:
[
{
"fuzzy": "12345",
"name": "{jon-errand}",
"email": "person@gmail.com",
"lights": "red",
"friends": "Elizabeth",
"traits": {
"Hair": "brown",
"Eyes": "yellow"
}
}
]
Run Code Online (Sandbox Code Playgroud)
我得到了例外:Error reading JArray from JsonReader. Current JsonReader item is not an array: StartObject.我已经尝试查看此处发布的SO答案,但我确信我的json是一个真正的数组.在不更改上面的json的情况下,如何以有用的方式读取这个json文件,以便我可以提取特定的字段?如获得该email领域person@gmail.com?
var obj = JsonConvert.DeserializeObject<List<Item>>(File.ReadAllText(pathToMyJsonFile));
Run Code Online (Sandbox Code Playgroud)
和你的课程
public class Traits
{
public string Hair { get; set; }
public string Eyes { get; set; }
}
public class Item
{
public string fuzzy { get; set; }
public string name { get; set; }
public string email { get; set; }
public string lights { get; set; }
public string friends { get; set; }
public Traits traits { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
编辑
dynamic array = JsonConvert.DeserializeObject(File.ReadAllText(pathToMyJsonFile));
foreach (var item in array)
{
Console.WriteLine(item.name + " " + item.traits.Hair);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
285 次 |
| 最近记录: |