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
相关产品推荐
相关产品推荐

