2017-09-13 66 views
1

這是我一直用來通讀的json文件的同倫複製boost::property_tree::json_parser::read_json是否允許在JSON文件中添加註釋以提升read_json?

而且它一直在工作。

/**********************************************/ 
/*     the title     */ 
/**********************************************/ 



{ 
    "garden": { 
     "side1": { 
      "treeA1": "apple", 
      "treeA2": "orange", 
      "treeA3": "banana", 
     }, 
     "side2": { 
      "treeB1": "orange", 
      "treeB2": "palm", 
      "treeB3": "cherry", 
     } 
    }, 
    "house": "" 
} 

我升級從1.58.0我增壓版本1.65.0,現在我接受,因爲評論的例外。當我刪除評論時,一切都很好。

我在某個地方犯了什麼錯誤,還是在新版本的boost中出現錯誤?

回答

1

評論是不是JSON。

舊的解析器確實有它們,但沒有正確支持unicode。

下面是the release notes for Boost 1.59.0消息:

屬性樹:

  • 一個新的JSON解析器與完整的Unicode支持。
  • 打破 更改:新解析器不支持在JSON文件中串聯註釋或字符串 。這些功能是舊解析器的非標準 擴展,但它們的移除可能會破壞 依賴它們的代碼。
0

official JSON standard未定義註釋語法(here's the reason why)。

支持註釋是基於每個分析器實現的(或不是)。這可能是Boost曾經爲了方便而支持的一些東西,但後來爲了遵從而被刪除(我猜測,因爲我自己沒有使用Boost)。

如果Boost不再支持註釋,則必須在解析之前將它們去掉。爲了這個目的,有很多第三方實現。有關建議請參閱Can comments be used in JSON?