Как мне создать файл json из файла plist? - PullRequest
5 голосов
/ 29 июля 2010

Я хочу создать файл json из существующего файла plist. Как мне создать файл json из plist-файла, используя один из следующих языков программирования: Javascript или Java или Objective-c, Python или Ruby?

Ответы [ 3 ]

12 голосов
/ 29 июля 2010

В 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>&lt;hello hi there!&gt;</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"}
6 голосов
/ 12 июня 2012

В OSX вы можете использовать инструмент командной строки plutil:

plutil -convert json Data.plist

Он не использует один из этих языков, но избавляет вас от его самостоятельной реализации или работы с библиотеками.

3 голосов
/ 29 июля 2010

Загрузить список свойств и получить из него словарь.Затем, используя одну из множества сред JSON, инициализируйте объект, похожий на магазин (объект, который принимает словарь в качестве входных данных), и запишите его в файл.Должен просто создать свой JSON.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...