当前位置: 首页 > 面试题库 >

缩小.NET中的缩进JSON字符串

仲孙奇
2023-03-14
问题内容

我有一个缩进的JSON字符串,例如

{
  "a": 1
}

但是,我没有要序列化或反序列化的实例的类型。

在我的情况下, 最小化* JSON字符串的 最有效方法 是什么?例如 *

{"a":1}

我不介意使用可用于生产的库。


问题答案:
Regex.Replace(myJSON, "(\"(?:[^\"\\\\]|\\\\.)*\")|\\s+", "$1")

应该做。它确保保留包含空格字符的字符串,并丢弃所有其他空格字符。所有的JSON的关键字(falsetruenull)必须由逗号或其他标点符号所以只有字符串内需要空格分开予以保留。

第一个选项(\"(?:[^\"\\\\]|\\\\.)*\")匹配双引号字符串。(...)表示已捕获输出并在替换中可用的平均值$1。在[^\"\\\\]除双引号或转义字符匹配任何字符\

由于匹配是从左到右进行的,因此第二个选项\s+将不匹配字符串中的空格。

因此,我们匹配整个字符串,并在字符串外部匹配空格。在前一种情况下,$1为字符串标记,在后一种情况下$1为空字符串,因为未使用组1。

这按预期工作,因为

  1. JSON中唯一可以包含空格的标记是双引号字符串。JSON中没有单引号字符串或注释。
  2. JSON语法要求所有多字符标记之间必须使用单字符标点,因此删除空间不会合并标记。在JavaScript中,这可能会引起问题,因为需要空间来破坏令牌。var x=0是从不同varx=0并且x - -(y)是从不同的x--(y)


 类似资料:
  • 问题内容: 我在想办法也无法在Java中解压缩String时遇到麻烦。这是我要学习的基本Java类,因此只需要基本命令,没有什么花哨的地方。它能够输入的目标 在命令提示符下,它将打印(就像它压缩参数字符串一样)。 另一个目标是输入 它将打印(就像它将解压缩参数String一样)。减压是我遇到的问题。这是我的代码,非常感谢我得到的任何帮助。 问题答案: Quick Code for you..

  • 问题内容: 我正在使用以下代码来压缩和解压缩字符串数据,但是我面临的问题是,它很容易被压缩而不会出错,但是decompress方法会引发以下错误。 线程“主”中的异常java.io.IOException:不是GZIP格式 仍然不知道如何解决此问题!!! 问题答案: 这是因为 发送您可以从中获得的,并在其中使用它来构建您的。以下是需要在代码中进行的更改。

  • 本文向大家介绍php压缩和解压缩字符串的方法,包括了php压缩和解压缩字符串的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了php压缩和解压缩字符串的方法。分享给大家供大家参考。具体如下: 下面php代码通过gzcompress和gzuncompress压缩和解压缩字符串,可以设定压缩级别 希望本文所述对大家的php程序设计有所帮助。

  • 在VSCode中,当我有: 如果我选择它并点击选项卡,我会得到: 如果我点击了班次标签,我会得到: 和 也是如此(如果这些应该有所作为) 我希望关闭自动缩进会阻止这种情况,但没有骰子。我还在 JSON 配置中关闭了 C 格式设置: 有一个扩展可以一次移动一个字符的文本,这是一种概念验证,你可以用类似的东西覆盖你的制表符。但是你似乎不需要一个扩展来禁用这种格式。 是应该做我想做的,但刚刚坏了? 更新

  • 最近,我偶然发现了这个JEP 254:紧凑字符串,其基本目标是: 小结:对字符串采用更节省空间的内部表示。 根据我目前的经验,