C# 从json获取chrome书签
我想使用json对象刮取chrome书签。我要做的是从1个文件夹中获取所有书签。这就是json的结构:C# 从json获取chrome书签,c#,json,C#,Json,我想使用json对象刮取chrome书签。我要做的是从1个文件夹中获取所有书签。这就是json的结构: { "checksum": "d499848083c2c2e3a38f547da4cbad7c", "roots": { "bookmark_bar": { "children": [ { "children": [ { "url": "https://www.example.com/"
{
"checksum": "d499848083c2c2e3a38f547da4cbad7c",
"roots": {
"bookmark_bar": {
"children": [ {
"children": [ {
"url": "https://www.example.com/"
}, {
"url": "https://www.another-example.com/"
} ],
"name": "foo",
} ],
"name": "Menu bookmarks",
},
"other": {
"name": "Another bookmarks",
},
"synced": {
"name": "Phone bookmarks",
}
},
"version": 1
}
在这种情况下,我想从文件夹foo
获取URL。我正在使用Json.NET
将字符串转换为对象。此代码:
string input = File.ReadAllText(bookmarksLocation);
using (StringReader reader = new StringReader(input))
using (JsonReader jsonReader = new JsonTextReader(reader)) {
JsonSerializer serializer = new JsonSerializer();
var o = (JToken)serializer.Deserialize(jsonReader);
var allChildrens = o["roots"]["bookmark_bar"]["children"];
var fooFolder = allChildrens.Where(x => x["name"].ToString() == "foo");
foreach (var item in fooFolder["children"]) {
Console.WriteLine(item["url"].ToString());
}
Console.ReadKey();
}
给我一个错误:
无法将带[]的索引应用于“IEnumerable”类型的表达式
你能告诉我我做错了什么吗?缺少一个循环:
var fooFolder = allChildrens.Where(x => x["name"].ToString() == "foo");
foreach (var folder in fooFolder)
{
foreach (var item in folder["children"])
{
Console.WriteLine(item["url"].ToString());
}
}
有帮助吗?