J'ai un fichier json. Si je lance clang-format dessus, il le formate comme si c'était du code (moche).

{
  "name" : "My great app",
           "description" : "It's really cool.",
                           "version" : "0.0.1"
}

Si je mets 'foo =' au début du fichier, c'est super, mais ce n'est plus json.

foo = {
  "name" : "My great app",
  "description" : "It's really cool.",
  "version" : "0.0.1"
}

Comment obtenir le format clang pour formater l'objet nu dans le fichier json comme dans le deuxième exemple?

4
Chris Connett 8 mars 2016 à 03:03

3 réponses

Meilleure réponse

Personnellement, je le ferais en utilisant python, en utilisant la jolie imprimante du package de json:

cat mydata.json | python -mjson.tool

Et si vous n'aimez pas les valeurs par défaut:

cat mydata.json | python -c 'import json, sys; print(json.dumps(json.load(sys.stdin), indent=4, sort_keys=True))'

Sinon, je n'ai pas clang-format installé, et pour une jolie impression, je préfère utiliser un outil existant.

N.B .: Vous pouvez également le faire dans vim et utiliser la commande normale == sur la sélection complète du fichier ☺

1
zmo 8 mars 2016 à 00:29

Si vous avez json_pp sur votre système, vous pouvez également faire:

cat test.json | json_pp
0
PythonJin 20 juin 2017 à 05:34

Un autre programme que j'aime utiliser est jq. C'est assez facile à utiliser et la documentation est excellente. Par exemple, pour un reformatage simple, vous pouvez procéder comme suit:

jq . test.json
1
PythonJin 21 avril 2016 à 20:45