Ich möchte Chrom Lesezeichen mit JSON-Objekt zu kratzen. Was ich tun möchte, ist alle Lesezeichen aus 1 Ordner zu bekommen. Das ist die Struktur der json:Holen Sie sich Chrom Lesezeichen von JSON
{
"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
}
In diesem Fall möchte ich Urls bekommen aus dem Ordner foo
. Ich verwende Json.NET
, um eine Zeichenfolge in ein Objekt zu konvertieren. Dieser Code:
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();
}
gibt mir eine Fehlermeldung: Cannot apply indexing with [] to an expression of type 'IEnumerable<JToken>'
Können Sie mir sagen, was ich falsch gemacht habe?
Does https://stackoverflow.com/questions/21002297/getting-the-name-key-of-a-jtoken-with-json-net Hilfe ? – mjwills