如何在C#中格式化嵌套字符串JSON属性的序列化JSON
解决嵌套JSON字符串的序列化/格式化问题
输入的JSON中Data字段是转义后的JSON字符串,需要将其转换为JSON对象,同时清除转义符、换行符等,得到结构化的最终JSON。
原始输入
{"Id": 33,"Data": "{\n \"$Datatype\": \"Val1, Val2\"\n }","Name": "Test"}
目标输出
{"Id": 33,"Data": {"$Datatype": "Val1, Val2"},"Name": "Test"}
实现方案
核心逻辑是先解析外层JSON,再将嵌套的JSON字符串解析为对象,最后重新序列化,自动处理转义符和换行。
Python 实现
import json # 原始输入 raw_input = '{"Id": 33,"Data": "{\n \"$Datatype\": \"Val1, Val2\"\n }","Name": "Test"}' # 解析外层JSON parsed = json.loads(raw_input) # 解析Data字段的嵌套字符串 parsed["Data"] = json.loads(parsed["Data"]) # 生成目标JSON(可加indent参数美化格式) result = json.dumps(parsed) print(result)
JavaScript 实现
// 原始输入 const rawInput = '{"Id": 33,"Data": "{\n \"$Datatype\": \"Val1, Val2\"\n }","Name": "Test"}'; // 解析外层JSON let parsed = JSON.parse(rawInput); // 解析Data字段的嵌套字符串 parsed.Data = JSON.parse(parsed.Data); // 生成目标JSON(可加参数美化格式) const result = JSON.stringify(parsed); console.log(result);
执行后就能得到符合要求的输出,若需要格式化美化的JSON,只需在dumps/stringify中添加缩进参数即可。
内容的提问来源于stack exchange,提问作者mohd afzal
相关产品推荐
相关产品推荐

