| // Copyright 2021 the V8 project authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef INCLUDE_V8_JSON_H_ |
| #define INCLUDE_V8_JSON_H_ |
| |
| #include "v8-local-handle.h" // NOLINT(build/include_directory) |
| #include "v8config.h" // NOLINT(build/include_directory) |
| |
| namespace v8 { |
| |
| class Context; |
| class Value; |
| class String; |
| |
| /** |
| * A JSON Parser and Stringifier. |
| */ |
| class V8_EXPORT JSON { |
| public: |
| /** |
| * Tries to parse the string |json_string| and returns it as value if |
| * successful. |
| * |
| * \param the context in which to parse and create the value. |
| * \param json_string The string to parse. |
| * \return The corresponding value if successfully parsed. |
| */ |
| static V8_WARN_UNUSED_RESULT MaybeLocal<Value> Parse( |
| Local<Context> context, Local<String> json_string); |
| |
| /** |
| * Tries to stringify the JSON-serializable object |json_object| and returns |
| * it as string if successful. |
| * |
| * \param json_object The JSON-serializable object to stringify. |
| * \return The corresponding string if successfully stringified. |
| */ |
| static V8_WARN_UNUSED_RESULT MaybeLocal<String> Stringify( |
| Local<Context> context, Local<Value> json_object, |
| Local<String> gap = Local<String>()); |
| }; |
| |
| } // namespace v8 |
| |
| #endif // INCLUDE_V8_JSON_H_ |