Как да създам json файл от plist файл?

Искам да създам json файл от съществуващ plist файл. Как да създам json файл от plist файл с помощта на един от тези езици за програмиране: Javascript или Java или Objective-c или Python или Ruby?


person sungkwangsong    schedule 29.07.2010    source източник
comment
Не съм сигурен дали някой plist може да бъде изразен като JASON файл, какъв точно plist искате да конвертирате?   -  person nacho4d    schedule 29.07.2010


Отговори (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>&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"}
person Anurag Uniyal    schedule 29.07.2010

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

plutil -convert json Data.plist

Той не използва един от тези езици, но ви спестява да го внедрявате сами или да се забърквате с библиотеки.

person Dylan    schedule 12.06.2012
comment
plutil -convert json Data.plist -e json гарантира, че не презаписва оригиналния файл и създава нов файл със същото име, но с разширение .json - person Menno; 08.01.2020

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

person jer    schedule 29.07.2010