PHP - 将数据转换为有效的json

时间:2017-03-16 22:36:26

标签: php json validation

我有一个巨大的.txt文件,其中包含以下格式的数据:

{
    "template_id": "prefix_1",
    "settings": {
        "setting1": "bla",
        "setting2": "blub"
    },
    "test": 1,
    "test": 2,
    "test": 3
},
{
    "template_id": "other_prefix_1",
    "values": {
        "value1": "bla",
        "value2": "blub"
    },
    "something": "Hello!"
},
{
    "template_id": "prefix_2",
    "settings": {
        "setting1": "bla",
        "setting2": "blub"
    },
    "test": 1,
    "test": 2,
    "test": 3
}

看起来像json,但它不是有效的json,我想让它有效。结果应该是这样的:

{
    "prefix": [
        {
            "id": "1",
            "settings": {
                "setting1": "bla",
                "setting2": "blub"
            },
            "tests": [
                "test": 1,
                "test": 2,
                "test": 3
            ]
        },
        {
            "id": "2",
            "settings": {
                "setting1": "bla",
                "setting2": "blub"
            },
            "tests": [
                "test": 1,
                "test": 2,
                "test": 3
            ]
        }
    ],
    "other_prefix": [
        {
            "id": "1",
            "values": {
                "value1": "bla",
                "value2": "blub"
            },
            "something": "Hello!"
        }
    ]
}

当我从txt文件中读取数据时,有人知道我如何用PHP做到这一点?这些行完全是这样的,所以如果有必要,我可以阅读每一行。

1 个答案:

答案 0 :(得分:0)

除非您在TXT文件中的格式是可以由PHP函数解析为对象的真实格式,否则您将需要从头开始编写解析器。它将涉及一个逐行读取的循环,一些IFs语句和正则表达式。

然后,您可以构建包含哈希和列表的哈希。

然后您可以使用json_encode($ myhash)将此哈希转换为JSON字符串。