我想从现有的plist文件创建一个json文件。如何使用以下编程语言之一从plist文件创建json文件:Javascript或Java或Objective-c或Python或Ruby?
答案 0 :(得分:12)
Python有一个模块plistlib,您可以使用它来读取plist文件。 plistlib在python> = 2.6中可用,所以如果你有旧版本,你可以从here获得plistlib。
使用plistlib.readPlist
读取plist作为dict后,您可以使用json.dumps
将其作为JSON转储,使用json模块或旧python版本获取simplejson
以下是一个例子:
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 json
from plistlib import readPlist
import StringIO
in_file = StringIO.StringIO(plist)
plist_dict = readPlist(in_file)
print json.dumps(plist_dict)
输出:
{"aList": ["A", "B", 12, 32.100000000000001, [1, 2, 3]], "aDict": {"anotherString": "<hello hi there!>"}, "aString": "Doodah"}
答案 1 :(得分:6)
在OSX上,您可以使用plutil命令行工具:
plutil -convert json Data.plist
它没有使用其中一种语言,但它可以帮助您避免自己实现它或弄乱库。
答案 2 :(得分:3)
加载属性列表并从中获取字典。然后使用众多JSON框架之一,初始化类似于存储的对象(将字典作为输入的对象)并将其写入文件。应该创建你的JSON就好了。