Join the Mozilla’s Test Days event from Dec 2–8 to test the new Firefox address bar on Firefox Beta 134 and get a chance to win Mozilla swag vouchers! 🎁

This site will have limited functionality while we undergo maintenance to improve your experience. If an article doesn't solve your issue and you want to ask a question, we have our support community waiting to help you at @FirefoxSupport on Twitter and/r/firefox on Reddit.

Search Support

Avoid support scams. We will never ask you to call or text a phone number or share personal information. Please report suspicious activity using the “Report Abuse” option.

Learn More

Internal structure / specification of JSON bookmarks backup file

  • 5 replies
  • 1 has this problem
  • 1 view
  • Paskiausią atsakymą parašė cor-el

more options

My current version of Firefox is 28.0.

What I already know is: - that bookmark backup files (JSON) are stored in folder "...\Mozilla\Firefox\Profiles\<xxxxx>.default\bookmarkbackups in files like e.g. bookmarks-2014-04-27_770.json (or in any other place when you backup manually).

- that bookmark export files are stored in any place as HTML (XML) in the Netscape bookmark format on your request to export.

- the main difference between these two formats is that in the HTML export file ONLY BOOKMARKS (URLs / URIs) and NO TAGS are stored.

- the JSON backup file stores bookmarks (URIs), tags and the complete tree structure. So Firefox is able to reconstruct the complete bookmark menu with all its information.

I am doing a lot of info research in the internet. To support a sophisticated work with hundreds or even thousands of collected boomarks tags are absolutely necessary. And I have often export bookmarks with tags to other browsers or social bookmark sites. So I have no idea why firefox does not support tags in export files - since a large amount of bookmarks without tags is not manageable.

My idea is to program a tool or an extension that reads a JSON backup file and constructs a HTML export file which also contains tags.

The problem is that the internal structure of the JSON backup file is rather complex. Actually it contains "id", "index", "parent" information (all numeric) which makes it possible to reconstruct the original tree structure. Even information on tags is somehow linked to the bookmarks. Actually the file has a complicated structure of lists and trees. And don't think that there are any identifier, e.g. "tags" which precedes a list of tags attached to a bookmark (like in HTML exports). Actually I could identify some of my tags in the file, but they are not named e.g. with "tag" - I could identify them because I knew that they are some of my defined tags, but a program doesn't have this information and needs a general way to identify tags in the file. Currently I don't know any way to do this!

Is there anybody who has a better understanding of the structur of this file or know a specification that could be find somewhere? So many thans in advance ...

My current version of Firefox is 28.0. What I already know is: - that bookmark backup files (JSON) are stored in folder "...\Mozilla\Firefox\Profiles\<xxxxx>.default\bookmarkbackups in files like e.g. bookmarks-2014-04-27_770.json (or in any other place when you backup manually). - that bookmark export files are stored in any place as HTML (XML) in the Netscape bookmark format on your request to export. - the main difference between these two formats is that in the HTML export file ONLY BOOKMARKS (URLs / URIs) and NO TAGS are stored. - the JSON backup file stores bookmarks (URIs), tags and the complete tree structure. So Firefox is able to reconstruct the complete bookmark menu with all its information. I am doing a lot of info research in the internet. To support a sophisticated work with hundreds or even thousands of collected boomarks tags are absolutely necessary. And I have often export bookmarks with tags to other browsers or social bookmark sites. So I have no idea why firefox does not support tags in export files - since a large amount of bookmarks without tags is not manageable. My idea is to program a tool or an extension that reads a JSON backup file and constructs a HTML export file which also contains tags. The problem is that the internal structure of the JSON backup file is rather complex. Actually it contains "id", "index", "parent" information (all numeric) which makes it possible to reconstruct the original tree structure. Even information on tags is somehow linked to the bookmarks. Actually the file has a complicated structure of lists and trees. And don't think that there are any identifier, e.g. "tags" which precedes a list of tags attached to a bookmark (like in HTML exports). Actually I could identify some of my tags in the file, but they are not named e.g. with "tag" - I could identify them because I knew that they are some of my defined tags, but a program doesn't have this information and needs a general way to identify tags in the file. Currently I don't know any way to do this! Is there anybody who has a better understanding of the structur of this file or know a specification that could be find somewhere? So many thans in advance ...

Modified by FrankR2014

Chosen solution

Tags basically have this structure if you search the bookmarks JSON backup for tags:

{
 'title': 'Tags',
 'type': 'text/x-moz-place-container',
 'root': 'tagsFolder',
 'children': [
   {
    'title': '<tag title>',
    'id': <tag id>,
    'type': 'text/x-moz-place-container',
    'children': [
      {
       'title': '',
       'id': <id of child>,
       'parent': <parent id>,
       'type': 'text/x-moz-place',
       'uri': 'http://',
       'charset': 'UTF-8'
      },{ <more children> }
     ]
   },{ <more children> }
  ]
},

Note that easiest to inspect a JSON backup is to open the file in the Scratchpad and click the pretty print button to make Firefox show the file formatted.

Skaityti atsakymą kartu su kontekstu 👍 3

All Replies (5)

more options
more options

Thanks for your developer links, edmeister! Currently all information is helpful, since I'm totally new in using Firefox.

FrankR

more options

Chosen Solution

Tags basically have this structure if you search the bookmarks JSON backup for tags:

{
 'title': 'Tags',
 'type': 'text/x-moz-place-container',
 'root': 'tagsFolder',
 'children': [
   {
    'title': '<tag title>',
    'id': <tag id>,
    'type': 'text/x-moz-place-container',
    'children': [
      {
       'title': '',
       'id': <id of child>,
       'parent': <parent id>,
       'type': 'text/x-moz-place',
       'uri': 'http://',
       'charset': 'UTF-8'
      },{ <more children> }
     ]
   },{ <more children> }
  ]
},

Note that easiest to inspect a JSON backup is to open the file in the Scratchpad and click the pretty print button to make Firefox show the file formatted.

more options

Many, many thanks to cor-el !!!

If I had seen these identifiers in the JSON bookmark backup before, I had no problem at all! All I needed was ... 'title': 'Tags', 'type': 'text/x-moz-place-container', 'root': 'tagsFolder', ...

But I didn't find anything like this! OK, a text beautyfier may be helpful to read the text by a human - but even the search function had its problems to find strings like "tag" - actually it didn't find a single occurance. And the file's overall complexity and redundancy of the makes additional problems without a specification.

In my original posting I even claimed that there were no identifiers like "tags" in the file. This was, of ourse, wrong! I just didn't see them!

Now I have all I need! I'm going to apply the Java EE JSON-API (available since Java EE 7) to read in a JSON bookmark backup and translate it to XML to import it everywhere I need (with bookmarks and tags!).


By the way: Do you know the meaning of the following identifiers - "GUID", e.g. "guid":"HD8o3potRm_A", "flags":0, "expires":4 ?


FrankR

Modified by FrankR2014

more options