如何从 plist 文件创建 json 文件?

发布于 2024-09-11 17:26:41 字数 116 浏览 5 评论 0原文

我想从现有的 plist 文件创建一个 json 文件。如何使用以下编程语言之一从 plist 文件创建 json 文件:Javascript 或 Java 或 Objective-c 或 Python 或 Ruby?

I want to create a json file from from existing plist file. How do I create json file from plist file using one of these programming languages: Javascript or Java or Objective-c or Python or Ruby?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

巴黎夜雨 2024-09-18 17:26:41

Python 有一个模块 plistlib ,您可以使用它来读取 plist 文件。 plistlib 在 python >= 2.6 中可用,因此如果您有旧版本,您可以从 此处

使用 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"}

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 json
from plistlib import readPlist
import StringIO

in_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"}
喜爱皱眉﹌ 2024-09-18 17:26:41

在 OSX 上,您可以使用 plutil 命令行工具:

plutil -convert json Data.plist

它不使用其中一种语言,但它可以让您免于自己实现它或弄乱库。

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.

海拔太高太耀眼 2024-09-18 17:26:41

加载属性列表并从中获取字典。然后使用众多 JSON 框架之一,初始化一个类似存储的对象(采用字典作为输入的对象)并将其写入文件。应该可以很好地创建您的 JSON。

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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文