搜尋 Mozilla 技術支援網站

防止技術支援詐騙。我們絕對不會要求您撥打電話或發送簡訊,或是提供個人資訊。請用「回報濫用」功能回報可疑的行為。

Learn More

Is there a way to convert the compressed jsonlz4 files to json?

  • 18 回覆
  • 28 有這個問題
  • 450 次檢視
  • 最近回覆由 pibaw

more options

Hi, is it possible to know how to properly restore a bookmarks session via jsonlz4 file? Firefox lost all of my bookmarks and when trying to restore them using the recovery session with the last jsonlz4 file the process simply does not end, starts but after couple hours is still running, with continuos warnings of scripts busy, or stopped responding. Is there a way to do it properly? Or a tool to convert the compressed jsonlz4 to json, maybe html. Thank you.

Hi, is it possible to know how to properly restore a bookmarks session via jsonlz4 file? Firefox lost all of my bookmarks and when trying to restore them using the recovery session with the last jsonlz4 file the process simply does not end, starts but after couple hours is still running, with continuos warnings of scripts busy, or stopped responding. Is there a way to do it properly? Or a tool to convert the compressed jsonlz4 to json, maybe html. Thank you.

被選擇的解決方法

Well gentlemen: I definitely gave up; whatever the reason, the issue is not resolvable. I stay with the old html bookmark, necessarily. Thanks for the efforts jscher and co-rel, and goodbye.

從原來的回覆中察看解決方案 👍 1

所有回覆 (18)

more options

Sorry to hear that Firefox can't process the file. Is it enormous?

I did find a post about how to use Firefox's developer tools to decompress the lz4-compressed file back to plain JSON. This would make it easier to analyze whether the JSON itself is invalid. I haven't tried it myself, or should I say, I started running the code and immediately realized I didn't know where my .jsonlz4 file was so I had to cancel out:

http://forums.mozillazine.org/viewtopic.php?p=14111285#p14111285

more options

Here's a variation of that script which uses a file picker, which may make it a little easier. The converted file will be saved alongside the compressed one in the same folder.

/* 
NOTE: BEFORE RUNNING THIS SCRIPT, CHECK THIS SETTING:
Type or paste about:config into the address bar and press Enter
Click the button promising to be careful
In the search box type devt and pause while Firefox filters the list
If devtools.chrome.enabled is false, double-click it to toggle to true

Paste this entire script into the command line at the bottom of the Browser Console (Windows: Ctrl+Shift+j)
Then press Enter to run the script. A file picker should promptly open.
*/

// Set up file chooser
var fp = Components.classes["@mozilla.org/filepicker;1"]
  .createInstance(Components.interfaces.nsIFilePicker);
fp.init(window, "Open File", Components.interfaces.nsIFilePicker.modeOpen);
fp.appendFilter("Bookmark Backup Files", "*.jsonlz4");
// Call file choose, proceed if a file was chosen
if (fp.show() == Components.interfaces.nsIFilePicker.returnOK) {
  var file = fp.file;
  // Check that file can be used
  if (file.exists() && file.isFile() && file.isReadable()) {
    var oldfile = fp.file.path;
    // Construct output file name
    var newfile = oldfile.replace(".jsonlz4", "_converted.json");
    // See: http://forums.mozillazine.org/viewtopic.php?p=14111285#p14111285
    var {utils:Cu} = Components;
    Cu.import("resource://gre/modules/Task.jsm");
    Cu.import("resource://gre/modules/osfile.jsm");
    function decompressBookmarksFile(oFilePath,nFilePath){return Task.spawn(function* () {var jsonString = yield OS.File.read(oFilePath,{ compression: "lz4" });yield OS.File.writeAtomic(nFilePath, jsonString);})}
    decompressBookmarksFile(oldfile,newfile);
  }
}

more options

Maybe add a "Saved as" confirmation via console.log(newfile).

  decompressBookmarksFile(oldfile,newfile);
  console.log("Saved as:"+ newfile);
more options

Yes it's a big file. The code 'apparently' works (apart from a series of reference and type errors), jsonlz4 converted to json, but the recovery still gives me script errors: is there a way to verify if the file is invalid? Or a way to convert this json format to the more handy html, that never gave me a problem in restoring the bookmarks. And moreover: why use the problematic json/jsonlz4 extension (I read issues similar to mine alongside the web)? It's a DRAMA when you lose all of your bookmarks because of some coder's wrong choice.

more options

I think the reason for the JSON format is that the traditional HTML format which became an informal standard in the 1990s does not capture all of the relevant data about your bookmarks, such as tags. The problem isn't so much using JSON or compressing it, but that every so often the file becomes corrupted for some reason, possible because a bookmark included a title or description containing an unexpected character, or the database from which the bookmarks are extracted has become corrupted. If Mozilla knew, someone could fix it going forward.

At this point, since you have JSON, there are tools online to "validate" that it is in the correct structural format. I have seen links for that in past threads but I don't recall trying them myself: https://support.mozilla.org/questions/1054932#answer-711872. I don't know whether the validators can repair the file, but they might indicate where there is a stray or missing comma, bracket, etc.

more options

Unfortunately the json validators I tried are useless, probably because my file is too lage. At this point after two whole days trying recovering the bookmarks, with poor sleeping, headache, anger and frustration I almost gave up: I acknowledge the json/jsonlz4 extension is a (intentional?) useless waste of time and that there's no way to operate this thing the right way. No way. At this very moment I'm waiting for firefox to open its window, watching in task manager the idle firefox recovering process that I started six hours ago. I call this a shame, that's not the right way to code I think. So thank you for the help, so long to my bookmarks and after a long sympathy for firefox maybe it's time to consider a new browser - unless you have the definitive solution, haven't you?

more options

How large is the uncompressed JSON file and how many bookmark items are in the file according to its file name?

  • bookmarks-YYYY-MM-DD_<item count>_<hash>.json

You can open the file in the Scratchpad (Firefox/Tools > Web Developer). Click the "Pretty Print" button to format the file for readability and possibly save the file under a different name.

more options

Json 30 Mb, one hundred thousand items. It's a very old bookmark, years of browsing. I don't know if opening the file in scratchpad is a good move, but I may try if you think so.

more options

Opening such a large file may take some time, so make sure that you do not have important links open in tabs or use a separate profile just in case to prevent blocking Firefox.

more options

Script errors again. Anyway, late here, keep trying next morning, I'll let you informed.

more options

Oh my: I tried installing an old html bookmark and now firefox gives script errors also here, even in safe mode with no add-ons running. Moreover the same happens trying importing bookmarks from Google Chrome. The hell is happening with this browser??

more options

You can extend the time for scripts to be considered unresponsive during this import process if that will make it easier... it won't actually make the import/restore faster.

In about:config you would increase the value for dom.max_chrome_script_run_time which defaults to 20 (seconds).

(I believe setting this preference to 0 allows Firefox to run the script up to 2147483647 seconds, which may be longer than you plan to own your computer... something like 28800 (8*60*60 = 8 hours) might be more along the lines of what you need.)

more options

It's not the timing: firefox for some reason simply does not allow recovering the bookmarks, in every format they come. I should need a very new installation of the browser I guess, but even completely uninstalling firefox is not possible, unless I format the Windows os. I don't know, this thing is craziness.

more options

After intalling firefox 35.0.1 (having tried ff 40 beta and 40 beta 64bit, and ff 31, with no success) and changing the dom.max_chrome_script_run_time to 1000, the html file has been accepted; upgraded to ff 39 and boomarks still there. The jsonlz4 still gives script error. Now I don't really know if I want to try increasing the dom.max_chrome_script_run_time again too verify if even the json/jsonlz4 works.

more options

If your HTML backup was complete, then it sounds as though experimenting with the JSON file would only be in the interest of science. Perhaps someone with a deep interest could create some other files of intermediate sizes for testing, since 100,000 bookmarks may be more than anyone ever expected (speaking as someone with about 9000 in his backup).

Firefox can get set to generate an HTML export of bookmarks at shutdown. It is overwritten (it doesn't create dated backups), but if you set Firefox to store it in a location you normally back up, perhaps that would be helpful. For more info, see: https://support.mozilla.org/questions/1062318#answer-729111

more options

Yes I'm aware about the possibility of an automatic html backup, but a file so big wants minutes for being written and I usually close firefox several times over the day to free the ram it uses. Would be annoying. The html of course isn't complete, it's not as recent as the json; but something is better than nothing and after three days trying and trying I can say this one doesn't recover at all, even with dom.max_chrome_script_run_time set to 10000, so I guess I must consider it gone along with this silly kind of recovery session via jsonlz4. It's useless, at least for my pc. At this point I need a good json viewer to try estracting the links lost, but I'm raging: this issue is not acceptable.

more options

Only automatically created JSON backups are compressed. If you create a JSON backup manually then you get an uncompressed .json backup. A difference is that an HTML backup is created when you close Firefox and an automatic JSON backup is created when you start Firefox or when Firefox detects that Firefox hasn't been restarted for some time.

Both should contain a full set of bookmarks, but a JSON backup includes tags and annotations, so is more complete.

more options

選擇的解決方法

Well gentlemen: I definitely gave up; whatever the reason, the issue is not resolvable. I stay with the old html bookmark, necessarily. Thanks for the efforts jscher and co-rel, and goodbye.