import json def json_to_string(json_data): """ 将JSON数据转换为使用指定分隔符的字符串 使用 |###| 作为键值对分隔符 使用 |##| 作为列表元素分隔符 Args: json_data (dict): 要转换的JSON数据 Returns: str: 转换后的字符串 """ if not isinstance(json_data, dict): raise ValueError("输入必须是字典类型") result_parts = [] for key, value in json_data.items(): if isinstance(value, list): # 处理列表:使用 |##| 分隔列表元素 list_str = "|##|".join(str(item) for item in value) result_parts.append(f"{key}:[{list_str}]") else: # 处理普通值 result_parts.append(f"{key}:{value}") # 使用 |###| 分隔键值对 return "|###|".join(result_parts) def string_to_json(data_string): """ 将使用指定分隔符的字符串转换回JSON格式 解析使用 |###| 分隔的键值对 解析使用 |##| 分隔的列表元素 Args: data_string (str): 要转换的字符串 Returns: dict: 转换后的JSON数据 """ if not isinstance(data_string, str): raise ValueError("输入必须是字符串类型") if not data_string.strip(): return {} result = {} # 使用 |###| 分割键值对 pairs = data_string.split("|###|") for pair in pairs: if ":" not in pair: continue # 分割键和值 key, value = pair.split(":", 1) key = key.strip() value = value.strip() # 检查是否是列表格式 [...] if value.startswith("[") and value.endswith("]"): # 处理列表 list_content = value[1:-1] # 去掉方括号 if list_content: # 使用 |##| 分割列表元素 items = list_content.split("|##|") # 尝试转换为适当的数据类型 converted_items = [] for item in items: item = item.strip() # 尝试转换为数字 try: if "." in item: converted_items.append(float(item)) else: converted_items.append(int(item)) except ValueError: # 如果不是数字,保持为字符串 converted_items.append(item) result[key] = converted_items else: result[key] = [] else: # 处理普通值,尝试转换为适当的数据类型 try: if "." in value: result[key] = float(value) else: result[key] = int(value) except ValueError: # 如果不是数字,保持为字符串 result[key] = value return result