Я хочу создать файл json из существующего файла plist. Как создать файл json из файла plist, используя один из этих языков программирования: Javascript, Java, Objective-c, Python или Ruby?
Как создать файл json из файла plist?
Ответы (3)
В Python есть модуль plistlib, который можно использовать для чтения файлов plist. plistlib доступен в python >= 2.6, поэтому, если у вас старая версия, вы можете получить plistlib из здесь.
После чтения plist как dict с помощью plistlib.readPlist
вы можете сбросить его как JSON с помощью json.dumps
, для этого используйте 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"}
В OSX вы можете использовать инструмент командной строки plutil:
plutil -convert json Data.plist
Он не использует ни один из этих языков, но избавляет вас от самостоятельной реализации или возни с библиотеками.
plutil -convert json Data.plist -e json
следит за тем, чтобы исходный файл не перезаписывался, и создает новый файл с тем же именем, но с расширением .json.
- person Menno; 08.01.2020
Загрузите список свойств и получите из него словарь. Затем, используя одну из множества платформ JSON, инициализируйте объект, подобный хранилищу (объект, который принимает словарь в качестве входных данных) и запишите его в файл. Должен создать ваш JSON просто отлично.