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

如何拆分JSON字符串并为JSON属性添加换行?附C#模型示例

解决JSON格式化添加换行和空格的问题

嘿,我来帮你搞定这个JSON格式化的需求!你之前试了转义字符没效果,其实不用手动折腾转义,用Newtonsoft.Json(也就是Json.NET)这个库就能轻松实现你想要的带缩进、换行的格式。

先确认你的C#模型没问题

你的Class1模型定义是正确的,JsonProperty特性也准确映射了JSON属性名,这点不用担心:

class Class1 
{ 
    [JsonProperty(PropertyName = "flag")] 
    public bool flag { get; set; } 
    [JsonProperty(PropertyName = "flag2")] 
    public bool flag2 { get; set; } 
    [JsonProperty(PropertyName = "SET TRUE USED")] 
    public bool M1 { get; set; } 
    [JsonProperty(PropertyName = "SET FALSE USED")] 
    public bool M2 { get; set; } 
}

两种场景的解决方案

场景1:从现有TXT文件的紧凑JSON生成格式化版本

如果你已经有了那个紧凑的JSON文件,只需要读取后反序列化再序列化,指定格式化参数就行:

// 读取原文件的紧凑JSON
string compactJson = File.ReadAllText(@"你的文件路径.txt");

// 先反序列化成对象,再用Indented格式序列化
string formattedJson = JsonConvert.SerializeObject(
    JsonConvert.DeserializeObject(compactJson), 
    Formatting.Indented
);

// 把格式化后的JSON写回文件(也可以指定新路径)
File.WriteAllText(@"格式化后的文件路径.txt", formattedJson);

场景2:从C#对象直接生成格式化的JSON

如果是从你的Class1对象生成JSON,直接序列化时指定Formatting.Indented即可:

// 实例化对象并赋值(根据你的需求设置属性值)
Class1 myClassInstance = new Class1
{
    flag = false,
    flag2 = false,
    M1 = false,
    M2 = false
};

// 生成带缩进和换行的JSON
string formattedJson = JsonConvert.SerializeObject(myClassInstance, Formatting.Indented);

// 写入文件
File.WriteAllText(@"输出文件路径.txt", formattedJson);

最终得到的格式化JSON效果

执行后你会得到符合要求的格式,每个属性单独一行,还有合适的缩进:

{
  "flag": false,
  "flag2": false,
  "SET TRUE USED": false,
  "SET FALSE USED": false
}

为什么手动转义字符没用?

手动给字符串加\n之类的转义字符容易出现格式错误,尤其是当JSON里有特殊字符或者带空格的属性名时,序列化库会自动处理这些细节,比手动操作可靠多了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 09:09:11