如何使用 Json.NET 阅读带有评论的 JSON 内容?

How can I read JSON content with a comment with Json.NET?(如何使用 Json.NET 阅读带有评论的 JSON 内容?)
本文介绍了如何使用 Json.NET 阅读带有评论的 JSON 内容?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

为了在 Google Chrome 浏览器中安装外部扩展,我尝试更新 Chrome 外部扩展 JSON 文件.使用 Json.NET 似乎很容易:

In order to install an external extension into Google Chrome browser, I try to update a Chrome external extension JSON file. Using Json.NET it seems to be easy:

string fileName = "..."; // Path to a Chrome external extension JSON file

string externalExtensionsJson = File.ReadAllText(fileName);

JObject externalExtensions = JObject.Parse(externalExtensionsJson);


但我得到一个 Newtonsoft.Json.JsonReaderException 说:

"Error parsing comment. Expected: *, got /. Path '', line 1, position 1."


在调用 JObject.Parse 时,因为该文件包含:


when calling JObject.Parse because this file contains:

// This JSON file will contain a list of extensions that will be included
// in the installer.

{
}

并且评论不是 JSON 的一部分(如 如何在 Json.NET 输出中添加注释?).

And comments are not part of JSON (as seen in How do I add comments to Json.NET output?).

我知道我可以使用正则表达式删除评论 (正则表达式删除 JavaScript 双斜杠 (//) 样式的注释),但我需要在修改后将 JSON 重写到文件中,保留注释可能是一件好事.

I know I can remove comments with a regular expression (Regular expression to remove JavaScript double slash (//) style comments), but I need to rewrite JSON into the file after modification and keeping comment can be a good thing.

有没有办法在不删除评论的情况下读取带有评论的 JSON 内容并能够重写它们?

Is there a way to read JSON content with comments without removing them and be able to rewrite them?

推荐答案

Json.NET 只支持读取多行 JavaScript 注释,即/*commment */

Json.NET only supports reading multi-line JavaScript comments, i.e. /* commment */

更新:Json.NET 6.0 支持单行注释

Update: Json.NET 6.0 supports single line comments

这篇关于如何使用 Json.NET 阅读带有评论的 JSON 内容?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

DispatcherQueue null when trying to update Ui property in ViewModel(尝试更新ViewModel中的Ui属性时DispatcherQueue为空)
Drawing over all windows on multiple monitors(在多个监视器上绘制所有窗口)
Programmatically show the desktop(以编程方式显示桌面)
c# Generic Setlt;Tgt; implementation to access objects by type(按类型访问对象的C#泛型集实现)
InvalidOperationException When using Context Injection in ASP.Net Core(在ASP.NET核心中使用上下文注入时发生InvalidOperationException)
LINQ many-to-many relationship, how to write a correct WHERE clause?(LINQ多对多关系,如何写一个正确的WHERE子句?)