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

Java/Groovy中将特定格式字符串转换为JSON对象的方法

实现方法

这个字符串并非标准JSON格式,无法直接解析,需要先预处理为符合JSON规范的结构,再转换为JSON对象。以下是两种常用语言的实现方案:

Python 实现

import json

# 原始字符串
raw_str = '"[_district:_1_2_5village, _name:_1_1_2id_inter, _gender:_1_3_5sex]"'

# 1. 去除外层引号和首尾方括号
processed_str = raw_str.strip('"').strip('[]')

# 2. 分割为键值对列表,清理每个条目前后的空格
kv_pairs = [pair.strip() for pair in processed_str.split(',')]

# 3. 构建字典(Python中的JSON对象等价结构)
result_dict = {}
for pair in kv_pairs:
    # 仅按第一个冒号分割,避免值中包含冒号时出错
    key, value = pair.split(':', 1)
    result_dict[key] = value

# 转换为标准JSON字符串(可选)
json_str = json.dumps(result_dict)
print(result_dict)
print(json_str)

JavaScript 实现

// 原始字符串
const rawStr = '"[_district:_1_2_5village, _name:_1_1_2id_inter, _gender:_1_3_5sex]"';

// 1. 去除外层引号和首尾方括号
const processedStr = rawStr.slice(1, -1).replace(/^\[|\]$/g, '');

// 2. 分割为键值对列表,清理每个条目前后的空格
const kvPairs = processedStr.split(',').map(pair => pair.trim());

// 3. 构建对象
const resultObj = {};
kvPairs.forEach(pair => {
    // 仅按第一个冒号分割,兼容值中含冒号的场景
    const [key, value] = pair.split(':', 1);
    resultObj[key] = value;
});

// 转换为标准JSON字符串(可选)
const jsonStr = JSON.stringify(resultObj);
console.log(resultObj);
console.log(jsonStr);

关键说明

  • 预处理时必须仅按第一个冒号分割键值对,避免如果值中包含冒号(比如_key:_val:ue)导致分割错误。
  • 清理字符串时要注意外层的双引号和首尾方括号,确保分割出的键值对是干净的。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 14:30:58