使用Newtonsoft JSON.NET库,是否可以对JSON字符串进行压缩/格式化,而无需强制系统重新解析代码?这是我的方法:
这段代码在小的JSON块中可以良好运行,但是处理大块内容时会变得非常缓慢。如果我能够在不经过解析器的情况下剥离所有东西,想必速度会更快。
如果我必须自己重新发明轮子并剥离所有空格或其他内容,我将这样做,但我不知道是否存在任何需要考虑的问题。
此外,是否有另一个更适合此类工作的库?
编辑:对不起,JSON本身不支持注释。
public async Task<string> Minify(string json)
{
// TODO: Some way to do this without a re-parse?
var jsonObj = await JsonOpener.GetJsonFromString(json);
return jsonObj.ToString(Formatting.None);
}
public async Task<string> Beautify(string json)
{
// TODO: Some way to do this without a re-parse?
var jsonObj = await JsonOpener.GetJsonFromString(json);
return FormatJson(jsonObj);
}
private string FormatJson(JToken input)
{
// We could just do input.ToString(Formatting.Indented), but this allows us
// to take advantage of JsonTextWriter's formatting options.
using (var stringWriter = new StringWriter(new StringBuilder()))
{
using (var jsonWriter = new JsonTextWriter(stringWriter))
{
// Configures indentation character and indentation width
// (e.g., "indent each level using 2 spaces", or "use tabs")
ConfigureWriter(jsonWriter);
var serializer = new JsonSerializer();
serializer.Serialize(jsonWriter, input);
return stringWriter.ToString();
}
}
}
这段代码在小的JSON块中可以良好运行,但是处理大块内容时会变得非常缓慢。如果我能够在不经过解析器的情况下剥离所有东西,想必速度会更快。
如果我必须自己重新发明轮子并剥离所有空格或其他内容,我将这样做,但我不知道是否存在任何需要考虑的问题。
此外,是否有另一个更适合此类工作的库?
编辑:对不起,JSON本身不支持注释。