[print-json] Actually valid json now!
This commit is contained in:
parent
f8e5ea4f95
commit
82b894c497
@ -1,6 +1,7 @@
|
|||||||
import fontTools.ttLib as ttLib
|
import fontTools.ttLib as ttLib
|
||||||
from fontTools.ttLib.ttVisitor import TTVisitor
|
from fontTools.ttLib.ttVisitor import TTVisitor
|
||||||
from fontTools.misc.textTools import Tag
|
from fontTools.misc.textTools import Tag
|
||||||
|
from array import array
|
||||||
|
|
||||||
|
|
||||||
class JsonVisitor(TTVisitor):
|
class JsonVisitor(TTVisitor):
|
||||||
@ -65,16 +66,15 @@ class JsonVisitor(TTVisitor):
|
|||||||
def visitLeaf(self, obj):
|
def visitLeaf(self, obj):
|
||||||
if isinstance(obj, tuple):
|
if isinstance(obj, tuple):
|
||||||
obj = list(obj)
|
obj = list(obj)
|
||||||
|
elif isinstance(obj, bytes):
|
||||||
|
obj = list(obj)
|
||||||
|
|
||||||
if obj is None:
|
if obj is None:
|
||||||
s = "null"
|
s = "null"
|
||||||
elif obj == True:
|
elif obj is True:
|
||||||
s = "true"
|
s = "true"
|
||||||
elif obj == False:
|
elif obj is False:
|
||||||
s = "false"
|
s = "false"
|
||||||
elif isinstance(obj, bytes):
|
|
||||||
s = repr(obj)
|
|
||||||
s = s[1:]
|
|
||||||
else:
|
else:
|
||||||
s = repr(obj)
|
s = repr(obj)
|
||||||
|
|
||||||
@ -119,6 +119,16 @@ def visit(self, obj):
|
|||||||
print('"%s"' % str(obj), end="", file=self.file)
|
print('"%s"' % str(obj), end="", file=self.file)
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
@JsonVisitor.register(array)
|
||||||
|
def visit(self, obj):
|
||||||
|
self.visitList(obj)
|
||||||
|
return False
|
||||||
|
|
||||||
|
@JsonVisitor.register(bytearray)
|
||||||
|
def visit(self, obj):
|
||||||
|
self.visitList(obj)
|
||||||
|
return False
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user