私はdelphi2012でdropboxのラッパーに取り組んでいます。私が遭遇している問題は、json応答の逆シリアル化です。アカウント内のフォルダーとファイルのリストを要求すると、次のような応答が返されます。
{
"hash": "some_hash",
"thumb_exists": false,
"bytes": 0,
"path": "/",
"is_dir": true,
"size": "0 bytes",
"root": "dropbox",
"contents":
[
{
"revision": 11,
"rev": "b074cbcbb",
"thumb_exists": false,
"bytes": 0,
"modified": "Mon, 23 Apr 2012 19:19:27 +0000",
"path": "/Apps",
"is_dir": true,
"icon": "folder",
"root": "dropbox",
"size": "0 bytes"
},
{
"revision": 142,
"rev": "8e074cbcbb",
"thumb_exists": false,
"bytes": 0,
"modified": "Wed, 09 May 2012 22:55:44 +0000",
"path": "/code",
"is_dir": true,
"icon": "folder",
"root": "dropbox",
"size": "0 bytes"
},
{
"revision": 7,
"rev": "7074cbcbb",
"thumb_exists": false,
"bytes": 246000,
"modified": "Mon, 23 Apr 2012 18:40:51 +0000",
"client_mtime": "Mon, 23 Apr 2012 18:40:52 +0000",
"path": "/Getting Started.pdf",
"is_dir": false,
"icon": "page_white_acrobat",
"root": "dropbox",
"mime_type": "application/pdf",
"size": "240.2 KB"
}
],
"icon": "folder"
}
TJSONUnMarshalオブジェクトを使用してそれを解析できるようにしたいのですが、TJSONUnMarshalはjsonが代わりに次のようになることを期待していることがわかりました。
{
"type":"DropboxApiU.TFile",
"id":1,
"fields":
{
"hash": "some_hash",
"thumb_exists": false,
"bytes": 0,
"path": "/",
"is_dir": true,
"size": "0 bytes",
"root": "dropbox",
"contents":
[
{
"type":"DropboxApiU.TFile",
"id":1,
"fields":
{
"revision": 11,
"rev": "b074cbcbb",
"thumb_exists": false,
"bytes": 0,
"modified": "Mon, 23 Apr 2012 19:19:27 +0000",
"path": "/Apps",
"is_dir": true,
"icon": "folder",
"root": "dropbox",
"size": "0 bytes"
}
},
私はこのページを見て、それが私が探しているものかもしれないと思いましたが、TTypeObjectReverter(私が使用する必要があると思う)の使用方法には決して入りません、そして私は見つけることができないようですオンラインの例。
これを実現するための最良の方法は何でしょうか?TTypeObjectReverterなどを記述できるといいのですが、頭を包み込むにはサンプルを見る必要があります。
編集 これは2つの違いのスクリーンショットです。赤はドロップボックスサーバーからの応答では送信されませんが、アンマーシャラーによって予期されます。