You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter中如何将字符串转换为JSON

把非标准对象结构转成标准JSON的方法

嘿,这个问题我碰到过好几次了!要把你给的{id: produk12549, nama: Abcd, url: myUrl}这种非标准结构转成合法的JSON格式,其实有几种实用的方案,我给你详细说说:

1. 手动修改(适合少量内容)

这是最直接的方式,因为标准JSON有两个核心要求:

  • 所有键必须用双引号包裹
  • 字符串类型的值也必须用双引号包裹

照着这个规则修改就行:

原内容:{id: produk12549, nama: Abcd, url: myUrl}
修改后:{"id": "produk12549", "nama": "Abcd", "url": "myUrl"}

2. 正则批量替换(适合大量文本)

如果有一堆这种格式的内容,手动改太麻烦,用文本编辑器(比如VS Code、Sublime Text)的正则查找替换功能就能快速搞定:

步骤:

  • 第一步:给所有键加上双引号

    • 查找:(\w+):
    • 替换:"$1":
      这个正则会匹配冒号前的标识符(比如id、nama),把它们替换成带双引号的键。
  • 第二步:给字符串值加上双引号

    • 查找:: (\w+)([,}])
    • 替换:: "$1"$2
      这个正则会匹配冒号后到逗号/右大括号的标识符(比如produk12549、Abcd),给它们加上双引号,同时保留后面的逗号或大括号。

3. 代码自动化处理(适合程序场景)

如果需要在代码里自动转换,可以用编程语言来处理,这里举两个常用的例子:

Python 实现

用ast模块安全解析非标准结构,再转成JSON:

import ast
import json

# 你的原始字符串
raw_content = "{id: produk12549, nama: Abcd, url: myUrl}"
# 转成Python字典
parsed_data = ast.literal_eval(raw_content)
# 生成标准JSON字符串
standard_json = json.dumps(parsed_data, indent=2)

print(standard_json)

运行后会输出:

{
  "id": "produk12549",
  "nama": "Abcd",
  "url": "myUrl"
}

JavaScript/Node.js 实现

用正则先格式化字符串,再解析成JSON对象:

const rawStr = "{id: produk12549, nama: Abcd, url: myUrl}";
// 用正则给键和值加双引号
const formattedStr = rawStr
  .replace(/(\w+):/g, '"$1":')
  .replace(/: (\w+)([,}])/g, ': "$1"$2');

// 解析成JSON对象并输出格式化后的字符串
const jsonObj = JSON.parse(formattedStr);
console.log(JSON.stringify(jsonObj, null, 2));

注意事项

如果你的值里包含空格、特殊字符,正则可能需要调整,但你给出的例子里都是纯字母数字的标识符,上面的方法完全适用。

内容的提问来源于stack exchange,提问作者user18223348

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.28 14:02:47