【问题标题】:Which Java/JSON library supports converting a JSON file that contains comments to a Java class?哪个 Java/JSON 库支持将包含注释的 JSON 文件转换为 Java 类?
【发布时间】:2013-05-09 17:18:30
【问题描述】:

我的 JSON 文件的内容是:

{
"MJ" : "Michael Jordan",
"KB" : "Kobe Bryant",
"KG" : "Kevin Garnet"
}

如果我使用 Gson 或 Jackson 或 JsonSimple 或其他 Java/JSON 第三方库,现在很容易将此文件(或字符串)转换为 Java 类(例如:java.util.HashMap)。例如,我可以像这样使用 Gson:

//this returns the string above
String jsonString = TestReader.getStrFromJSonFile();
Gson gson = new Gson();
Type type = new TypeToken<HashMap<String, String>>() {}.getType();
HashMap<String, String> map = gson.fromJson(jsonString, type);

但是,如果我的 JSON 文件包含 cmets,大多数第三方库将无法使用。 例如:

  {   
       //Bulls   
       "MJ" : "Michael Jordan",   
       /*Lakers*/  
       "KB" : "Kobe Bryant",    
       //Boston Celtics    
       "KG" : "Kevin Garnet"    
   }

现在我什至在谷歌搜索和堆栈溢出之后感到困惑。我有两个问题:

  1. JSON 文件真的可以包含任何 cmets 吗?我认为可以,因为我每天都会在 JSON 文件中看到很多这样的内容。但是 >>> (links)

  2. 如果可以,我该如何解决我的问题?

【问题讨论】:

  • 如果您在使用的解析器上启用该功能,Jackson 支持 cmets:jackson.codehaus.org/1.8.8/javadoc/org/codehaus/jackson/…
  • Can I comment a JSON file? 的可能副本
  • @WChargin 其实这只是我的一个问题,我的重点是第二个问题。
  • @cmbaxter 非常感谢。它有效 :-)
  • 这样的评论不包含legal JSON,因此您必须使用专门启用的 JSON 解析器来处理它们。任何 Web 服务或其他“通用”JSON 源都不应该以这种方式生成 cmets。 (基本上你真正拥有的是 JavaScript,而不是 JSON。)

标签: java json jackson gson


【解决方案1】:

如果您在您使用的解析器上启用该功能,Jackson 支持 cmets:

https://fasterxml.github.io/jackson-core/javadoc/2.10/com/fasterxml/jackson/core/JsonParser.Feature.html

【讨论】:

  • 链接已失效。
猜你喜欢
  • 2019-02-17
  • 1970-01-01
  • 2019-07-15
  • 2015-09-01
  • 2013-09-09
  • 2021-12-17
  • 2019-06-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多