2010-11-18 33 views
3

Je veux effacer toutes les URLs de ma sauvegarde de marque-pages .json que firefox crée et affiche un fichier .txt.Une façon rapide et efficace d'analyser un fichier mozilla firefox json

Voici un échantillon de l'un des objets situés dans le fichier:

{"index":1,"title":"Bookmarks Toolbar","id":3,"parent":1,"dateAdded":1219177758531250,"lastModified":1288873459187000,"annos":[{"name":"bookmarkProperties/description","flags":0,"expires":4,"mimeType":null,"type":3,"value":"Add bookmarks to this folder to see them displayed on the Bookmarks Toolbar"}],"type":"text/x-moz-place-container","root":"toolbarFolder","children":[{"title":"","id":25,"parent":3,"dateAdded":1224693644437500,"lastModified":1236888979406250,"annos":[{"name":"placesInternal/GUID","flags":0,"expires":4,"mimeType":null,"type":3,"value":"{f6066e21-10ff-46a2-af7a-2891f8dca345}0"}],"type":"text/x-moz-place","uri":"http://www.google.com/"} 

Ces objets sont et doivent contiennent tous séparés par des virgules au moins un membre qui contient une chaîne dont la valeur est l'URL de le signet.

Voici un échantillon de ce que le fichier .txt aurait en elle:

http://www.google.com 
http://www.yahoo.com 
http://www.etc.com` 

Idéalement, je suis intéressé à voir si cela peut être retiré à l'aide d'outils de script disponibles dans un environnement Windows générique XP » ".

Si Windows ne peut pas le couper, quelle serait la solution la plus simple à ce problème &?

Existe-t-il un site Web ou un programme capable d'effectuer des correspondances ou des regex pour analyser le fichier? & remplacez avant d'installer quelque chose comme Active Perl ou Strawberry Perl et écrivez un script pour cela.

+0

XMLSpy (http://www.altova.com/xmlspy.html) peut très facilement réaliser des conversions JSON vers XML, et je suppose qu'une étape XML à TXT ultérieure serait également assez triviale. XMLSpy n'est pas bon marché, mais la version d'essai est complète. – Andrew

+0

Voici une page décrivant la fonctionnalité JSON de XMLSpy: http://www.altova.com/xmlspy/json-editor.html – Andrew

+0

cela inclurait-il aussi les signets en direct (RSS) ainsi que les signets réguliers? – Thufir

Répondre

0

Si vous avez Excel, il est probablement facile de faire un texte à colonnes contiennent

sur ". Étant donné que le format (ordre des champs) est toujours le même, vous devriez avoir les URL quelque part près de la dernière colonne.

+0

J'allais essayer, mais je n'ai pas encore excellé sur cet ordinateur - je l'ai formaté il y a quelques jours et je suis à la recherche d'une solution alternative qui nécessite le moins d'intervention de tiers – CheeseConQueso

+0

* soupir * seulement une autre chose plutôt simple est d'utiliser sed (très ancien paquet d'ici: http://unxutils.sourceforge.net/). Vous pouvez faire quelque chose comme 'sed 's /.*" uri ":" \\ ([^ "] \\)". */\ 1 /' bookmarks-file.txt'. –

+0

un texte à colonnes divisées sur un Le fichier de signets wouldrender un assez grand nombre de colonnes, parce que le fichier JSON entier est un 1-ligne –

1

Une autre façon que je trouve est la méthode sur le site suivant:

http://forums.mozillazine.org/viewtopic.php?f=38&t=1057265&sid=66d981cc79d1ff63644e0cdd5b665a37

Fondamentalement, vous procédez comme suit:

(1) Créer un signet Firefox avec comme l'emplacement:

javascript:(function(){var E=document.getElementsByTagName('PRE')[0],T=E.innerHTML,i=0,r1,r2;t=new Array();while(/("uri":"([^"]*)")/g.exec(T)){r1=RegExp.$1;r2=RegExp.$2;if(/^https?:/.exec(r2)){t[i++]='['+(i)+']:<a href='+r2+'>'+r2+'<\/a>';}}with(window.open().document){for(i=0;t[i];i++)write(t[i]+'<br>');close();}})(); 

(2) Ouvrez un onglet firefox vierge.

(3) faites glisser votre fichier firefox json dans l'onglet vide, cela devrait ouvrir le fichier json.

(4) GOTO votre signet créé à l'étape 1.

(5), vous devriez avoir une liste de "cliquables" pour urls tous vos marque-pages.

+0

sonne comme une approche intéressante .... ill enquêter, merci – CheeseConQueso

+0

se bloque ff. J'ai un fichier de marque-pages 3MiB. –

0

Je n'ai pas testé cela. REMARQUE: Vérifiez/corrigez tous les chemins de fichier ci-dessous pour correspondre à votre système.

@Echo Off 
Rem FFExportBookmarks.bat 

SetLocal EnableDelayedExpansion 
Set JSONFile="%APPDATA%\Mozilla\Firefox\Profiles\xyz42pdq.default\bookmarkbackups\Bookmarks.json" 
Set FavOut="%USERPROFILE%\My Documents\FFBookmarks.txt" 
Set JSONTemp="%Temp%\JSONTemp.txt" 
Echo.> %JSONTemp% 
Set JSONTemp1="%Temp%\JSONTemp1.txt" 
Echo.> %JSONTemp1% 

For /f "UseBackQ Delims=" %%N In ('Type %JSONFile%') Do (
    Set JSONInput=%%N 
Rem Filter double " and other delimiters 
    Set JSONInput=!JSONInput:"=! 
    Set JSONInput=!JSONInput: =! 
    Set JSONInput=!JSONInput:^,= ! 
    Set JSONInput=!JSONInput:[= ! 
    Set JSONInput=!JSONInput:]= ! 
    Set JSONInput=!JSONInput:{= ! 
    Set JSONInput=!JSONInput:}= ! 

    For %%K In (!JSONInput!) Do For /f "Tokens=1,2 Delims=:" %%X In ("%%K") Do (
    If /i "%%X"=="uri" Echo %%Y >> %FavOut% 
) 
) 

Start "" %FavOut% 

Ce n'était pas très rapide, mais c'est très sale!