跳到内容
🛠️ToolsShed

文本转 JSON 工具

将纯文本行转换为 JSON 数组、对象,或解析键:值对。支持多种转换模式。

关于此工具

文本转 JSON 转换器将非结构化文本转换为有效的 JSON 格式,使您能够轻松将纯文本数据转换为机器可读的结构。无论您是在处理配置文件、API 数据还是简单的列表,此工具都无需手动编写 JSON 语法,可帮助您快速将基于文本的信息迁移到应用程序和 API 可以直接使用的格式。

要使用此转换器,只需粘贴您的文本并选择与您的数据结构相匹配的转换模式。该工具支持逗号分隔项的数组格式、用于键值对的对象表示法(使用冒号或等号分隔符)以及逐行转换,其中每一行都成为数组元素。选择合适的模式并点击转换后,该工具会生成格式正确的 JSON,您可以立即在项目中复制和使用。

对于迁移遗留文本数据的开发人员、为测试创建 JSON 测试数据或快速原型配置结构而不需要手动编写语法的开发人员来说,此工具非常宝贵。内容创意、分析师和任何处理结构化数据的人都会发现它通过消除重复的 JSON 格式化任务来加速工作流程。

常见问题

代码实现

# Text to JSON Conversion Utilities
import json

def lines_to_array(text: str, skip_empty: bool = True, trim: bool = True) -> list:
    lines = text.split("\n")
    if trim:
        lines = [l.strip() for l in lines]
    if skip_empty:
        lines = [l for l in lines if l]
    return lines

def lines_to_objects(text: str, key: str = "text", skip_empty: bool = True) -> list:
    lines = lines_to_array(text, skip_empty)
    return [{key: line} for line in lines]

def keyvalue_to_object(text: str, trim: bool = True) -> dict:
    result = {}
    for line in text.split("\n"):
        if trim:
            line = line.strip()
        for sep in [":", "="]:
            idx = line.find(sep)
            if idx > 0:
                k = line[:idx].strip()
                v = line[idx+1:].strip()
                result[k] = v
                break
    return result

def csv_to_json(text: str, trim: bool = True) -> list:
    lines = text.split("\n")
    if not lines:
        return []
    headers = [h.strip() if trim else h for h in lines[0].split(",")]
    result = []
    for line in lines[1:]:
        if not line.strip():
            continue
        values = [v.strip() if trim else v for v in line.split(",")]
        result.append({headers[i]: values[i] if i < len(values) else "" for i in range(len(headers))})
    return result

# Examples
text = "apple\nbanana\ncherry"
print(json.dumps(lines_to_array(text), indent=2))

kv_text = "name: Alice\nage: 30\ncity: London"
print(json.dumps(keyvalue_to_object(kv_text), indent=2))

csv_text = "name,age,city\nAlice,30,London\nBob,25,Paris"
print(json.dumps(csv_to_json(csv_text), indent=2))

Comments & Feedback

Comments are powered by Giscus. Sign in with GitHub to leave a comment.