How do I create json file from plist file?
Python has a module plistlib which you can use to read plist files. plistlib is available in python >= 2.6, so if you have old version you can get plistlib from here.
After reading plist as dict using plistlib.readPlist
you can dump it as JSON using json.dumps
, for that use json module or for old python version get simplejson
Here is an example:
plist = """<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"><plist version="1.0"><dict> <key>aDict</key> <dict> <key>anotherString</key> <string><hello hi there!></string> </dict> <key>aList</key> <array> <string>A</string> <string>B</string> <integer>12</integer> <real>32.100000000000001</real> <array> <integer>1</integer> <integer>2</integer> <integer>3</integer> </array> </array> <key>aString</key> <string>Doodah</string></dict></plist>"""import jsonfrom plistlib import readPlistimport StringIOin_file = StringIO.StringIO(plist)plist_dict = readPlist(in_file)print json.dumps(plist_dict)
Output:
{"aList": ["A", "B", 12, 32.100000000000001, [1, 2, 3]], "aDict": {"anotherString": "<hello hi there!>"}, "aString": "Doodah"}
On OSX you can use the plutil command line tool:
plutil -convert json Data.plist
It isn't using one of those languages, but it saves you from implementing it yourself or messing with libraries.
Load the property list and get a dictionary out of it. Then using one of the many JSON frameworks, initialize a store-like object (an object that takes a dictionary as input) and write that out to a file. Should create your JSON just fine.