В ответ на вопрос, который я задал несколько дней назад, я пытаюсь немного потянуться и сделать то, на чем я раньше особо не фокусировался. Я провел некоторый поиск (как здесь, так и в целом), но не могу найти ответы (или даже разумные намеки) на то, чего я хочу достичь (хотя некоторые вещи приближаются).
По сути, я пытаюсь десериализовать данные для файла закладок Google Chrome с помощью библиотеки Json.NET (хотя, если есть лучшая альтернатива, я все за это - документация для эта библиотека немного сбивает с толку местами). Я немного сбит с толку относительно следующего шага, который нужно предпринять, в первую очередь из-за фантастической обработки PHP данных JSON (с использованием json_decode () ), допускающей один вызов функции, а затем простой ассоциативной доступ к массиву.
Библиотека (Json.NET) хочет, чтобы я указал тип объекта, в который она может десериализовать данные JSON, но я не совсем уверен, как структурировать такой объект, учитывая формат самого файла закладок. , Формат выглядит примерно так:
{
"roots": {
"bookmark_bar": {
"children": [ {
"children": [ {
"date_added": "12880758517186875",
"name": "Example URL",
"type": "url",
"url": "http://example.com"
}, {
"date_added": "12880290253039500",
"name": "Another URL",
"type": "url",
"url": "http://example.org"
} ],
"date_added": "12880772259603750",
"date_modified": "12880772452901500",
"name": "Sample Folder",
"type": "folder"
}, {
"date_added": "12880823826333250",
"name": "Json.NET",
"type": "url",
"url": "http://james.newtonking.com/pages/json-net.aspx";
} ],
"date_added": "0",
"date_modified": "12880823831234250",
"name": "Bookmarks bar",
"type": "folder"
},
"other": {
"children": [ ],
"date_added": "0",
"date_modified": "0",
"name": "Other bookmarks",
"type": "folder"
}
},
"version": 1
}
Теперь, в PHP, я бы гораздо больше привык делать что-то вроде следующего, чтобы получить нужные данные, и в итоге получаю «Json.NET»:
$data['roots']['bookmark_bar']['children'][0]['name'];
Я могу достаточно просто определить, какие объекты создавать для представления данных (что-то вроде корневого объекта, затем объекта списка закладок и, наконец, отдельного объекта закладки), но я действительно не уверен, как реализовать их, а затем заставить библиотеку правильно десериализоваться в соответствующие объекты.
Любой совет, который может быть предложен, будет принят с благодарностью.