wgtmac commented on code in PR #95:
URL: https://github.com/apache/iceberg-cpp/pull/95#discussion_r2083558800


##########
src/iceberg/json_internal.cc:
##########
@@ -1210,11 +1216,11 @@ Result<std::unique_ptr<TableMetadata>> 
TableMetadataFromJson(const nlohmann::jso
 }
 
 Result<nlohmann::json> FromJsonString(const std::string& json_string) {
-  try {
-    return nlohmann::json::parse(json_string);
-  } catch (const std::exception& e) {
-    return JsonParseError("Failed to parse JSON string: {}", e.what());
+  auto json = nlohmann::json::parse(json_string, nullptr, false);
+  if (json.is_discarded()) {

Review Comment:
   ```suggestion
     if (json.is_discarded()) [[unlikely]] {
   ```



##########
src/iceberg/json_internal.cc:
##########
@@ -1210,11 +1216,11 @@ Result<std::unique_ptr<TableMetadata>> 
TableMetadataFromJson(const nlohmann::jso
 }
 
 Result<nlohmann::json> FromJsonString(const std::string& json_string) {
-  try {
-    return nlohmann::json::parse(json_string);
-  } catch (const std::exception& e) {
-    return JsonParseError("Failed to parse JSON string: {}", e.what());
+  auto json = nlohmann::json::parse(json_string, nullptr, false);

Review Comment:
   ```suggestion
     auto json = nlohmann::json::parse(json_string, /*cb=*/nullptr, 
/*allow_exceptions=*/false);
   ```



##########
src/iceberg/json_internal.cc:
##########
@@ -173,12 +171,17 @@ void SetOptionalField(nlohmann::json& json, 
std::string_view key,
   }
 }
 
+std::string DumpJsonNoExcept(const nlohmann::json& json) {
+  return json.dump(-1, ' ', false, nlohmann::detail::error_handler_t::ignore);

Review Comment:
   What about renaming it to `SafeDumpJson`?



##########
src/iceberg/json_internal.cc:
##########
@@ -173,12 +171,17 @@ void SetOptionalField(nlohmann::json& json, 
std::string_view key,
   }
 }
 
+std::string DumpJsonNoExcept(const nlohmann::json& json) {
+  return json.dump(-1, ' ', false, nlohmann::detail::error_handler_t::ignore);

Review Comment:
   ```suggestion
     return json.dump(/*indent=*/-1, /*indent_char=*/' ', 
/*ensure_ascii=*/false, nlohmann::detail::error_handler_t::ignore);
   ```
   
   For better readability



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscr...@iceberg.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscr...@iceberg.apache.org
For additional commands, e-mail: issues-h...@iceberg.apache.org

Reply via email to