删除json字符串c#中的尾随空格

Posted

技术标签:

【中文标题】删除json字符串c#中的尾随空格【英文标题】:Remove trailing spaces in json string c# 【发布时间】:2018-05-26 09:02:28 【问题描述】:

我有一个大的 json 字符串,我需要从属性值(在 c# 中)中删除任意数量的前导和尾随空格,例如

"Some Property Name": " Some Value "

需要改成:-

"Some Property Name": "Some Value"

我可以选择在 json 字符串转换为 newtonsoft json 对象之前通过正则表达式替换来执行此操作,或者在转换后循环遍历 json 对象的属性。

有人对最好的方法有什么想法吗?

【问题讨论】:

不知道 json 的结构,对我来说似乎最简单。让库进行解析。 json 大吗?对象上有很多字符串属性吗?你能定义“最佳”吗? 既然你写了你正在使用newtonsoft,请参阅With json.net, is there a shortish way to manipulate all string fields?。 在您的体系结构中承担此类责任的类中执行此操作。我的意思是你需要考虑空格是否会成为你可能想要作为有效值返回的东西。如果它是为某些类而不是其他类提供的值,那么它可能是消费类的角色,但如果你真的不想要前导/尾随/完整的空格,那么你不妨在阅读器中这样做。 【参考方案1】:

您的第二个选项是最安全的。

当您必须修改某种结构化文本(XML、html、JSON、C# 等)时,最安全的选择是解析、修改和重新格式化。否则,您可能会更改您不打算更改的内容。

在您的特定场景中,例如,正则表达式解决方案可能会无意中从字符串中的引用字符串中去除前导空格

"Some Property Name": " Say \"   Hello, world!\" two times "

在开发基于正则表达式的解决方案时,这种极端情况通常会被忽视。另一方面,基于解析器的解决方案不会将这些情况视为“极端情况”,因为理解格式的所有复杂性都转移到了解析器中。

【讨论】:

以上是关于删除json字符串c#中的尾随空格的主要内容,如果未能解决你的问题,请参考以下文章

如何删除前导和尾随的空格以及字符串中的多个空格? [复制]

JavaScript:如何从 JSON 字符串中删除除值中的空格之外的所有空格?

从 JSON 字符串中删除所有缩进和空格,除了它在 Ruby 中的值之外

SQLPlus 在插入时删除 clob 字段中的尾随空格

可以将 Jackson 配置为从所有字符串属性中修剪前导/尾随空格吗?

从 JSON 字符串中删除所有不必要的空格(在 PHP 中)